--- /dev/null
+package fi.vtt.simantics.processeditor.adapters;\r
+\r
+import javax.vecmath.Point3d;\r
+import javax.vecmath.Vector3d;\r
+\r
+import org.simantics.db.Graph;\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.adaption.AdaptionException;\r
+import org.simantics.db.adaption.ResourceAdapter;\r
+import org.simantics.layer0.utils.EntityFactory;\r
+import org.simantics.layer0.utils.IEntity;\r
+import org.simantics.proconf.g3d.base.Constraint;\r
+import org.simantics.proconf.g3d.base.G3DTools;\r
+\r
+import fi.vtt.simantics.processeditor.ProcessResource;\r
+import fi.vtt.simantics.processeditor.common.PipingTools2;\r
+\r
+public class NozzleConstraintAdapter implements ResourceAdapter {\r
+ @SuppressWarnings("unchecked")\r
+ @Override\r
+ public <T> T adapt(Graph graph, Resource resource, Resource mia) throws AdaptionException {\r
+ Constraint c = new Constraint();\r
+ assert(graph.isInstanceOf(resource, ProcessResource.plant3Dresource.Nozzle));\r
+ IEntity ent = EntityFactory.create(graph,resource);\r
+ Vector3d dir = PipingTools2.getNozzleDirection(ent);\r
+ Point3d center = G3DTools.getPoint(ent.getSingleRelatedObject(ProcessResource.g3dResource.HasWorldPosition));\r
+ c.points.add(center);\r
+ c.dirs.add(dir);\r
+ return (T) c;\r
+ }\r
+\r
+}\r