Hi István

Great work! This was very helpful!

Thank you!
Lie Pablo

On 4 September 2011 12:37, István Csanády <istvancsan...@gmail.com> wrote:

> Hi Lie,
>
> Here is how I create vertex and normal buffers for OpenGL, hope it is
> helpful.
>
>
> def mesh_shape(self,shape):
>
>         if shape.IsNull():
>
>             return
>
>
>
>         BRepMesh_Mesh(shape,0.01)
>
>         t = Topo(shape)
>
>         numTriangles = 0
>
>         triangulations = []
>
>         faces = []
>
>         for  aFace in t.faces():
>
>             loc = TopLoc_Location()
>
>             triangulation = BRep_Tool_Triangulation(aFace,loc)
>
>             faces.append(aFace)
>
>             if triangulation.IsNull() == False:
>
>                 numTriangles += triangulation.GetObject().NbTriangles()
>
>                 triangulations.append(triangulation)
>
>
>
>         normals = [0.]*numTriangles*3*3
>
>         triangles = [0.]*numTriangles*3*3
>
>
>
>         t = Topo(shape)
>
>         index = 0
>
>         for i in range(len(triangulations)):
>
>             triangulation = triangulations[i]
>
>             tris = triangulation.GetObject().Triangles()
>
>             nodes = triangulation.GetObject().Nodes()
>
>             prop = BRepGProp_Face(faces[i])
>
>             for j in range(1,triangulation.GetObject().NbTriangles()+1):
>
>
>
>                 N1 = None
>
>                 N2 = None
>
>                 N3 = None
>
>                 #Poly_Triangle
>
>                 N1,N2,N3 = tris.Value(j).Get()
>
>                 V1 = nodes.Value(N1)
>
>                 V2 = nodes.Value(N2)
>
>                 V3 = nodes.Value(N3)
>
>                 triangles[index*9] = V1.X();
>
>                 triangles[index*9+1] = V1.Y();
>
>                 triangles[index*9+2] = V1.Z();
>
>                 triangles[index*9+3] = V2.X();
>
>                 triangles[index*9+4] = V2.Y();
>
>                 triangles[index*9+5] = V2.Z();
>
>                 triangles[index*9+6] = V3.X();
>
>                 triangles[index*9+7] = V3.Y();
>
>                 triangles[index*9+8] = V3.Z();
>
>
>
>                 uv = triangulation.GetObject().UVNodes().Value(N1);
>
>                 tmp = gp_Pnt()
>
>                 norm = gp_Vec()
>
>                 prop.Normal(uv.X(),uv.Y(),tmp,norm);
>
>                 norm.Normalize();
>
>                 normals[index*9]=norm.X();
>
>                 normals[index*9+1]=norm.Y();
>
>                 normals[index*9+2]=norm.Z();
>
>
>
>                 norm.Normalize();
>
>                 normals[index*9+3]=norm.X();
>
>                 normals[index*9+4]=norm.Y();
>
>                 normals[index*9+5]=norm.Z();
>
>
>
>                 uv = triangulation.GetObject().UVNodes().Value(N3)
>
>                 prop.Normal(uv.X(),uv.Y(),tmp,norm)
>
>                 norm.Normalize()
>
>                 normals[index*9+6]=norm.X()
>
>                 normals[index*9+7]=norm.Y()
>
>                 normals[index*9+8]=norm.Z()
>
>                 index = index+1
>
>
> On Sat, Sep 3, 2011 at 9:30 PM, Lie Pablo <lie...@gmail.com> wrote:
>
>> István Csanády <istvancsanady@...> writes:
>>
>> >
>> >
>> > Hi All!
>> >
>> > If I give an topological incorrect shape to QuickTriangleMesh, it
>> crashes if I
>> call compute() (And it does not crash if I call
>> compute_default_precision() but
>> does not return any data). However the SimpleGUI can display it. Is it
>> possible
>> somehow to use the SimpleGUI's mesher algorithm (and curve discretizer)?
>> I've
>> attached the code. (Mac OSX 10.6, python 2.6)
>> >
>> > István
>> >
>> > Attachment (main.py): application/octet-stream, 5132 bytes
>>
>>
>> Hi István,
>>
>> I'm working with QuickTriangleMesh and I found another problem... I get
>> about
>> half of the normals flipped. But if I save it straight away with
>> StlAPI_Writer
>> the normals are ok.
>>
>> All best
>> Lie Pablo
>>
>>
>> _______________________________________________
>> Pythonocc-users mailing list
>> Pythonocc-users@gna.org
>> https://mail.gna.org/listinfo/pythonocc-users
>>
>
>
> _______________________________________________
> Pythonocc-users mailing list
> Pythonocc-users@gna.org
> https://mail.gna.org/listinfo/pythonocc-users
>
>
_______________________________________________
Pythonocc-users mailing list
Pythonocc-users@gna.org
https://mail.gna.org/listinfo/pythonocc-users

Reply via email to