package fi.vtt.simantics.processeditor.adapters; import javax.vecmath.Point3d; import javax.vecmath.Vector3d; import org.simantics.db.Graph; import org.simantics.db.Resource; import org.simantics.db.adaption.AdaptionException; import org.simantics.db.adaption.ResourceAdapter; import org.simantics.layer0.utils.EntityFactory; import org.simantics.layer0.utils.IEntity; import org.simantics.proconf.g3d.base.Constraint; import fi.vtt.simantics.processeditor.ProcessResource; import fi.vtt.simantics.processeditor.common.PipingTools2; public class InlineComponentConstraintAdapter implements ResourceAdapter { @SuppressWarnings("unchecked") @Override public T adapt(Graph graph, Resource resource, Resource mia) throws AdaptionException { Constraint c = new Constraint(); assert(graph.isInstanceOf(resource, ProcessResource.plant3Dresource.InlineComponent)); IEntity ent = EntityFactory.create(graph,resource); Point3d center = new Point3d(); Point3d p1 = new Point3d(); Point3d p2 = new Point3d(); Vector3d dir = new Vector3d(); PipingTools2.getInlineComponentEnds(ent, center, p1, p2, dir); c.points.add(center); c.points.add(p1); c.points.add(p2); c.dirs.add(dir); return (T) c; } }