Esempio n. 1
0
 def makeGeom(self, points, colors, sizes):
     #format = GeomVertexFormat.getV3c4()
     array = GeomVertexArrayFormat()
     array.addColumn(InternalName.get_vertex(), 3, Geom.NTFloat32, Geom.CPoint)
     array.addColumn(InternalName.get_color(), 4, Geom.NTFloat32, Geom.CColor)
     array.addColumn(InternalName.get_size(), 1, Geom.NTFloat32, Geom.COther)
     format = GeomVertexFormat()
     format.addArray(array)
     format = GeomVertexFormat.registerFormat(format)
     vdata = GeomVertexData('vdata', format, Geom.UH_static)
     vdata.unclean_set_num_rows(len(points))
     self.vwriter = GeomVertexWriter(vdata, InternalName.get_vertex())
     self.colorwriter = GeomVertexWriter(vdata, InternalName.get_color())
     self.sizewriter = GeomVertexWriter(vdata, InternalName.get_size())
     geompoints = GeomPoints(Geom.UH_static)
     geompoints.reserve_num_vertices(len(points))
     index = 0
     for (point, color, size) in zip(points, colors, sizes):
         self.vwriter.addData3f(*point)
         self.colorwriter.addData4f(*color)
         self.sizewriter.addData1f(size)
         geompoints.addVertex(index)
         #geompoints.closePrimitive()
         index += 1
     geom = Geom(vdata)
     geom.addPrimitive(geompoints)
     return geom
Esempio n. 2
0
 def update_geom(self, points, colors, sizes):
     geom = self.instance.children[0].node().modify_geom(0)
     vdata = geom.modify_vertex_data()
     vdata.unclean_set_num_rows(len(points))
     vwriter = GeomVertexRewriter(vdata, InternalName.get_vertex())
     colorwriter = GeomVertexWriter(vdata, InternalName.get_color())
     sizewriter = GeomVertexWriter(vdata, InternalName.get_size())
     for (point, color, size) in zip(points, colors, sizes):
         vwriter.addData3f(*point)
         colorwriter.addData4f(*color)
         sizewriter.addData1f(size)