cadquery-freecad-module/tests/TestJsonMesher.py
2013-04-14 18:39:47 -04:00

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);