]> gerrit.simantics Code Review - simantics/3d.git/blob - org.simantics.g3d.csg/src/org/simantics/g3d/csg/scenegraph2/BoxNode.java
3D framework (Simca 2012)
[simantics/3d.git] / org.simantics.g3d.csg / src / org / simantics / g3d / csg / scenegraph2 / BoxNode.java
1 package org.simantics.g3d.csg.scenegraph2;\r
2 \r
3 import org.jcae.opencascade.jni.TopoDS_Shape;\r
4 import org.simantics.g3d.csg.ontology.CSG;\r
5 import org.simantics.g3d.property.annotations.GetPropertyValue;\r
6 import org.simantics.g3d.property.annotations.SetPropertyValue;\r
7 import org.simantics.objmap.graph.annotations.GraphType;\r
8 import org.simantics.objmap.graph.annotations.RelatedGetValue;\r
9 import org.simantics.objmap.graph.annotations.RelatedSetValue;\r
10 import org.simantics.opencascade.OccTriangulator;\r
11 \r
12 @GraphType(CSG.URIs.Box)\r
13 public class BoxNode extends CSGnode {\r
14 \r
15         private double sx = 1.0;\r
16         private double sy = 1.0;\r
17         private double sz = 1.0;\r
18         \r
19         public BoxNode() {\r
20                 System.out.println();\r
21         }\r
22         \r
23         @RelatedSetValue(CSG.URIs.HasXAxisSize)\r
24         @SetPropertyValue(CSG.URIs.HasXAxisSize)\r
25         public void setSX(double d) {\r
26                 this.sx = d;\r
27                 firePropertyChanged(CSG.URIs.HasXAxisSize);\r
28         }\r
29         \r
30         @RelatedSetValue(CSG.URIs.HasYAxisSize)\r
31         @SetPropertyValue(CSG.URIs.HasYAxisSize)\r
32         public void setSY(double d) {\r
33                 this.sy = d;\r
34                 firePropertyChanged(CSG.URIs.HasYAxisSize);\r
35         }\r
36         \r
37         @RelatedSetValue(CSG.URIs.HasZAxisSize)\r
38         @SetPropertyValue(CSG.URIs.HasZAxisSize)\r
39         public void setSZ(double d) {\r
40                 this.sz = d;\r
41                 firePropertyChanged(CSG.URIs.HasZAxisSize);\r
42         }\r
43         \r
44         @RelatedGetValue(CSG.URIs.HasXAxisSize)\r
45         @GetPropertyValue(value=CSG.URIs.HasXAxisSize, name = "X Size")\r
46         public double getSx() {\r
47                 return sx;\r
48         }\r
49         \r
50         @RelatedGetValue(CSG.URIs.HasYAxisSize)\r
51         @GetPropertyValue(value=CSG.URIs.HasYAxisSize, name = "Y Size")\r
52         public double getSy() {\r
53                 return sy;\r
54         }\r
55         \r
56         @RelatedGetValue(CSG.URIs.HasZAxisSize)\r
57         @GetPropertyValue(value=CSG.URIs.HasZAxisSize, name = "Z Size")\r
58         public double getSz() {\r
59                 return sz;\r
60         }\r
61         \r
62         \r
63         @Override\r
64         public TopoDS_Shape getBaseGeometry() {\r
65                 return OccTriangulator.makeBox(-sx * 0.5, -sy * 0.5, -sz * 0.5, sx * 0.5, sy * 0.5, sz * 0.5);\r
66         }\r
67 \r
68 \r
69 }\r