You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.7 KiB

  1. cc.GridLine = class("GridLine")
  2. cc.GridLine.ClassName = "GridLine"
  3. function cc.GridLine:saveToXmlNode(xmlNode)
  4. cc.Layout.saveToXmlNode(self , xmlNode);
  5. end
  6. function cc.GridLine:loadFromXmlNode(xmlNode)
  7. cc.Layout.loadFromXmlNode(self , xmlNode);
  8. end
  9. function cc.GridLine:extend(layout)
  10. cc.Layout:extend(layout);
  11. layout:setName("GridLine")
  12. -- 把lua的类函数扩展给node(C++对象)
  13. layout:extendClass(cc.GridLine);
  14. local vertexFormat = {};
  15. table.insert(vertexFormat , {size = 3 , usage = cc.VertexFormatUsage.POSITION});
  16. table.insert(vertexFormat , {size = 4 , usage = cc.VertexFormatUsage.COLOR});
  17. local vertices = ManualVertices:new(vertexFormat);
  18. vertices:setColor(cc.c4f(1,1,1,1));
  19. -- 画轴
  20. vertices:drawLine(cc.vec3(-100000 , 0 , 0) , cc.vec3(100000 , 0 , 0))
  21. vertices:drawLine(cc.vec3(0 , -100000 , 0) , cc.vec3(0 , 100000 , 0))
  22. local mesh = cc.Mesh:createMesh(vertexFormat , vertices:getVertexCount());
  23. mesh:setPrimitiveType(cc.PrimitiveType.LINES);
  24. mesh:setVertexData(vertices:getVertices() , 0 , vertices:getVertexCount());
  25. mesh:setBoundingBox(vertices:getBoundingBox());
  26. local model = cc.Model:create(mesh);
  27. local material = cc.Material:create("preload/shaders/ccDefault.material#ShaderPositionColor3D");
  28. material:setParameterAutoBinding("CC_MVPMatrix" , "WORLD_VIEW_PROJECTION_MATRIX");
  29. model:setMaterialPointer(material);
  30. local node = cc.Node3D:create();
  31. node:addComponent(model);
  32. layout:addProtectedChild(node);
  33. end
  34. function cc.GridLine:createNode()
  35. local layer = cc.Layout:create();
  36. cc.GridLine:extend(layer);
  37. return layer;
  38. end
  39. -- 设置默认值
  40. function cc.GridLine:setDefaults()
  41. self:setSize(cc.size(100,100));
  42. self:setBackGroundColorType(cc.LayoutBackGroundColorType.none);
  43. end