X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=examples%2Fopengl%2Fvertexarray.py;h=b9dee7b8bb0e4b08751e6b67e0be765d0d295aee;hb=a678c04bd9942eb915a1d07caac747ef5d0f8556;hp=c1d758eaef3fe154d4cd4efb2d1a2467b0135798;hpb=dee0cd0168789cdeb0cf8d360b52a4ce24464f55;p=meshio%2Fpymeshio.git diff --git a/examples/opengl/vertexarray.py b/examples/opengl/vertexarray.py index c1d758e..b9dee7b 100644 --- a/examples/opengl/vertexarray.py +++ b/examples/opengl/vertexarray.py @@ -61,6 +61,29 @@ class VertexArrayWithUV(object): glDisableClientState(GL_TEXTURE_COORD_ARRAY) glDisableClientState(GL_VERTEX_ARRAY) + def get_boundingbox(self): + vertices_size=len(self.vertices) + if(vertices_size==0): + return ([0, 0, 0], [0, 0, 0]) + def vertex_gen_factory(): + for i in range(0, vertices_size, 3): + yield [ + self.vertices[i], + self.vertices[i+1], + self.vertices[i+2] + ] + vertex_gen=vertex_gen_factory() + v=next(vertex_gen) + max_v=v[:] + min_v=v[:] + for v in vertex_gen: + min_v[0]=min(min_v[0], v[0]) + min_v[1]=min(min_v[1], v[1]) + min_v[2]=min(min_v[2], v[2]) + max_v[0]=max(max_v[0], v[0]) + max_v[1]=max(max_v[1], v[1]) + max_v[2]=max(max_v[2], v[2]) + return (min_v, max_v) ''' インデックス参照頂点配列 @@ -120,15 +143,15 @@ class IndexedVertexArray(object): glDisableClientState(GL_VERTEX_ARRAY) def optimize(self): - self.vertices=numpy.array(self.vertices, 'f') - self.uvlist=numpy.array(self.uvlist, 'f') + self.vertices=numpy.array(self.vertices, numpy.float32) + self.uvlist=numpy.array(self.uvlist, numpy.float32) + for m, indices in self.indicesMap.items(): + self.indicesMap[m]=numpy.array(indices, numpy.uint32) def get_boundingbox(self): vertices_size=len(self.vertices) if(vertices_size==0): return ([0, 0, 0], [0, 0, 0]) - print('vertices_size %d' % vertices_size) - print(self.vertices[0]) def vertex_gen_factory(): for i in range(0, vertices_size, 4): yield [