--
--                  square.lua
--

-- 引数を渡したい場合はmain()関数を書く。
-- :>square 8
-- のようにして呼び出す。
-- これは、
-- :>square.main 8
-- と同意とみなす。

function test(tb)

  function add(op1,op2)
    table.insert(op1,0,op2)
  end

  meta = { __add = add}
  setmetatable(tb, meta)
end

function main(size)

--[[
  local tb = {}
  test(tb)
  tb = tb + 2
  print(tb)
]]

  local size = size / 2

  local doc = mc.GetDocument()                -- 現在のドキュメントを取得
  local obj = mc.GetActiveMesh(doc,0)       -- 最初のアクティブオブジェクトを取得

  local sub = nil
  if (obj == nil) then                                 -- アクティブオブジェクトが無い場合、
    obj = mc.CreateMeshObject(doc,"CreatedByLua")  -- 新しくオブジェクトを作り、
    sub =mc.CreateSubMesh(obj,"mesh-0")
    mc.AddObjectToTree(doc, obj)                      -- ツリーに登録する
    mc.SetObjectAttr(obj,"Activated","1",1)           -- ツリー上で選択状態(アクティブ)にする
  end

  mc.BeginModify(obj)                              -- 編集開始

  local vtx = {}                                      --頂点テーブル
  local uvs = {-1,-1,-1,-1}                     --UV頂点テーブル(-1で初期化しておく)
  local x,y,z

  for i = 1,4 do
    if i == 1 then
      x = size
      y = -size
      z = 0
    elseif i == 2 then
      x = -size
      y = -size
      z = 0
    elseif i == 3 then
      x = -size
      y = size
      z = 0
    elseif i == 4 then
      x = size
      y = size
      z = 0
    end
    print(x,y,z)
    print(uvs[i])
    vtx[i] = mc.AddVertex(obj, x,y,z)   -- 四隅の頂点を作ってテーブルに登録
  end

  mc.AddPolygon(obj, nil, 4, vtx, uvs, 0)   -- 作成した頂点を基に面を生成

  mc.EndModify(obj, 0)                             -- 編集終了
  mc.RefreshView(doc, CW_VIEW_ALL)      -- 全画面更新


end