]> gerrit.simantics Code Review - simantics/3d.git/blob - org.simantics.g3d.csg/src/org/simantics/g3d/csg/scenegraph2/DifferenceNode.java
3D framework (Simca 2012)
[simantics/3d.git] / org.simantics.g3d.csg / src / org / simantics / g3d / csg / scenegraph2 / DifferenceNode.java
1 package org.simantics.g3d.csg.scenegraph2;\r
2 \r
3 import org.jcae.opencascade.jni.TopoDS_Shape;\r
4 import org.simantics.g3d.csg.ontology.CSG;\r
5 import org.simantics.objmap.graph.annotations.GraphType;\r
6 import org.simantics.opencascade.OccTriangulator;\r
7 \r
8 @GraphType(CSG.URIs.Difference)\r
9 public class DifferenceNode extends CSGparentNode {\r
10 \r
11         @Override\r
12         public TopoDS_Shape getBaseGeometry() {\r
13                 TopoDS_Shape prim = getPrimary();\r
14                 TopoDS_Shape sec = getSecondary();\r
15                 if (prim != null && sec != null) {\r
16                         TopoDS_Shape res = OccTriangulator.makeCut(prim, sec);\r
17                         prim.delete();\r
18                         sec.delete();\r
19                         return res;\r
20                 }\r
21                 if (prim != null)\r
22                         prim.delete();\r
23                 if (sec != null)\r
24                         sec.delete();\r
25                 return null;\r
26         }\r
27 \r
28         \r
29 }\r