X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.g3d.csg%2Fsrc%2Forg%2Fsimantics%2Fg3d%2Fcsg%2Fscenegraph2%2FIntersectionNode.java;fp=org.simantics.g3d.csg%2Fsrc%2Forg%2Fsimantics%2Fg3d%2Fcsg%2Fscenegraph2%2FIntersectionNode.java;h=738ff0f9c626ce25f930fde6d57355a5f378b6da;hb=87b3241ec277ba3d8e414b26186a032c9cdcaeed;hp=0000000000000000000000000000000000000000;hpb=1f0bcd66274375f2278d2e6c486cb28257a5f7b2;p=simantics%2F3d.git diff --git a/org.simantics.g3d.csg/src/org/simantics/g3d/csg/scenegraph2/IntersectionNode.java b/org.simantics.g3d.csg/src/org/simantics/g3d/csg/scenegraph2/IntersectionNode.java new file mode 100644 index 00000000..738ff0f9 --- /dev/null +++ b/org.simantics.g3d.csg/src/org/simantics/g3d/csg/scenegraph2/IntersectionNode.java @@ -0,0 +1,28 @@ +package org.simantics.g3d.csg.scenegraph2; + +import org.jcae.opencascade.jni.TopoDS_Shape; +import org.simantics.g3d.csg.ontology.CSG; +import org.simantics.objmap.graph.annotations.GraphType; +import org.simantics.opencascade.OccTriangulator; + +@GraphType(CSG.URIs.Intersection) +public class IntersectionNode extends CSGparentNode { + + @Override + public TopoDS_Shape getBaseGeometry() { + TopoDS_Shape prim = getPrimary(); + TopoDS_Shape sec = getSecondary(); + if (prim != null && sec != null) { + TopoDS_Shape res =OccTriangulator.makeCommon(prim, sec); + prim.delete(); + sec.delete(); + return res; + } + if (prim != null) + prim.delete(); + if (sec != null) + sec.delete(); + return null; + } + +}