45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
![]() |
import unittest
|
||
|
from JsonUtils import JsonMesh
|
||
|
import FreeCAD
|
||
|
from FreeCAD import Part
|
||
|
from FreeCAD import Vector
|
||
|
|
||
|
"""
|
||
|
WARNING: set FREECAD_HOME for these tests to work!
|
||
|
"""
|
||
|
class TestJSonModel(unittest.TestCase):
|
||
|
|
||
|
def setUp(self):
|
||
|
self.mesh = JsonMesh();
|
||
|
|
||
|
def testOneFace(self):
|
||
|
mesh = self.mesh;
|
||
|
mesh.addVertex(0.0,0.0,0.0);
|
||
|
mesh.addVertex(1.0,1.0,0.0);
|
||
|
mesh.addVertex(-1.0,1.0,0);
|
||
|
mesh.addTriangleFace(0, 1, 2);
|
||
|
self.assertEqual(3*3,len(mesh.vertices));
|
||
|
self.assertEqual(1+3,len(mesh.faces));
|
||
|
|
||
|
def testSphere(self):
|
||
|
|
||
|
#make a sphere
|
||
|
p = Part.makeSphere(2.0);
|
||
|
t = p.tessellate(0.01); #a pretty fine mesh
|
||
|
|
||
|
#add vertices
|
||
|
for vec in t[0]:
|
||
|
self.mesh.addVertex(vec.x, vec.y, vec.z);
|
||
|
|
||
|
#add faces
|
||
|
for f in t[1]:
|
||
|
self.mesh.addTriangleFace(f[0],f[1], f[2]);
|
||
|
|
||
|
#make resulting json
|
||
|
self.mesh.buildTime = 0.1;
|
||
|
js = self.mesh.toJson();
|
||
|
|
||
|
#make sure the mesh has like >1000 vertices
|
||
|
self.assertTrue(self.mesh.nVertices > 1000);
|
||
|
self.assertTrue(self.mesh.nFaces > 1000);
|