X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Futils%2FComponentUtils.java;h=fb065f111f98b84c9d7ebf4ee27cb85ac4517190;hb=a1e1faa6915445e786f482170576b9c9d0f5d982;hp=4bee16b61bd94660beae05d0fe96f0295b260b07;hpb=b32696a059ab6f9e01e16df26f1cdf0d8fbf1e91;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/utils/ComponentUtils.java b/org.simantics.plant3d/src/org/simantics/plant3d/utils/ComponentUtils.java index 4bee16b6..fb065f11 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/utils/ComponentUtils.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/utils/ComponentUtils.java @@ -16,7 +16,9 @@ import org.simantics.db.common.utils.NameUtils; import org.simantics.db.exception.DatabaseException; import org.simantics.g3d.math.MathTools; import org.simantics.g3d.scenegraph.GeometryProvider; +import org.simantics.g3d.scenegraph.ParametricGeometryProvider; import org.simantics.layer0.Layer0; +import org.simantics.plant3d.geometry.ParameterRead; import org.simantics.plant3d.ontology.Plant3D; import org.simantics.plant3d.scenegraph.EndComponent; import org.simantics.plant3d.scenegraph.Equipment; @@ -49,6 +51,8 @@ public class ComponentUtils { types.add(Plant3D.URIs.Builtin_ConcentricReducer); types.add(Plant3D.URIs.Builtin_BranchSplitComponent); types.add(Plant3D.URIs.Builtin_EccentricReducer); + types.add(Plant3D.URIs.Builtin_Elbow45); + types.add(Plant3D.URIs.Builtin_Elbow90); for (String typeURI : types) { load(graph, typeURI); @@ -72,6 +76,11 @@ public class ComponentUtils { } if (geom != null) { GeometryProvider provider = graph.adapt(geom, GeometryProvider.class); + if (provider instanceof ParametricGeometryProvider) { + Map params = graph.syncRequest(new ParameterRead(type)); + if (params.size() > 0) + ((ParametricGeometryProvider)provider).setProperties(params); + } return provider; } return null; @@ -368,7 +377,7 @@ public class ComponentUtils { } else if (toPcp.isDirected()) { dir = new Vector3d(toPcp.getDirection(Direction.NEXT)); pos = new Vector3d(toPcp.getWorldPosition()); - } else if (toPcp.isTurn() && toPcp.isFixed()) { + } else if (toPcp.isTurn() && toPcp.asFixedAngle()) { dir = new Vector3d(toPcp.getDirection(position == PositionType.NEXT ? Direction.NEXT : Direction.PREVIOUS)); pos = new Vector3d(toPcp.getWorldPosition()); if (!lengthAdjustable) {