]> gerrit.simantics Code Review - simantics/3d.git/blob - org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/EndComponent.java
5df76c0f8e00561456cc4c44593caa43094d33b9
[simantics/3d.git] / org.simantics.plant3d / src / org / simantics / plant3d / scenegraph / EndComponent.java
1 package org.simantics.plant3d.scenegraph;
2
3 import java.util.HashMap;
4 import java.util.Map;
5
6 import org.simantics.g3d.scenegraph.base.ParentNode;
7 import org.simantics.objmap.graph.annotations.DynamicGraphType;
8 import org.simantics.objmap.graph.annotations.GetType;
9 import org.simantics.objmap.graph.annotations.SetType;
10 import org.simantics.plant3d.ontology.Plant3D;
11 import org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint;
12 import org.simantics.plant3d.scenegraph.controlpoint.ControlPointFactory;
13
14 @DynamicGraphType(Plant3D.URIs.EndComponent)
15 public class EndComponent extends PipelineComponent {
16
17         private String type;
18         PipeControlPoint controlPoint;
19         
20         @GetType(Plant3D.URIs.EndComponent)
21         public String getType() {
22                 return type;
23         }
24         
25         @SetType(Plant3D.URIs.EndComponent)
26         public void setType(String type) throws Exception {
27                 this.type = type;
28                 controlPoint = ControlPointFactory.create(this);
29                 
30         }
31         
32         @Override
33         public PipeControlPoint getControlPoint() {
34                 return controlPoint;
35         }
36         
37         @Override
38         public void setParent(ParentNode<?> parent, String name) {
39                 super.setParent(parent, name);
40                 setPipeRun((PipeRun)parent);
41         }
42         
43         @Override
44         public Map<String, Object> updateParameterMap() {
45                 Map<String,Object> map = new HashMap<String, Object>();
46                 
47                 PipeRun pipeRun = getPipeRun();
48                 if (pipeRun != null) {
49                         map.put("radius", pipeRun.getPipeDiameter() * 0.5);
50                 }
51                 return map;
52         }
53 }