]> gerrit.simantics Code Review - simantics/3d.git/blob - dev/org.simantics.proconf.g3d/src/org/simantics/proconf/g3d/actions/TranslateActionConstraints.java
latest release (0.41)
[simantics/3d.git] / dev / org.simantics.proconf.g3d / src / org / simantics / proconf / g3d / actions / TranslateActionConstraints.java
1 /*******************************************************************************\r
2  * Copyright (c) 2007 VTT Technical Research Centre of Finland and others.\r
3  * All rights reserved. This program and the accompanying materials\r
4  * are made available under the terms of the Eclipse Public License v1.0\r
5  * which accompanies this distribution, and is available at\r
6  * http://www.eclipse.org/legal/epl-v10.html\r
7  *\r
8  * Contributors:\r
9  *     VTT Technical Research Centre of Finland - initial API and implementation\r
10  *******************************************************************************/\r
11 package org.simantics.proconf.g3d.actions;\r
12 \r
13 import org.simantics.db.Resource;\r
14 import org.simantics.proconf.g3d.base.ConstraintDetector;\r
15 \r
16 \r
17 /**\r
18  * Temporary class to handle "Automatic" constraints for translation\r
19  * TODO : create extension point / extension that can provide constraints\r
20  * TODO : how to override previously added constraints ?\r
21  * \r
22  * @author Marko Luukkainen\r
23  *\r
24  */\r
25 public class TranslateActionConstraints {\r
26     \r
27     \r
28     public static void addConstraints(Resource translated[], ConstraintDetector detector) {\r
29         detector.clearConstraints();\r
30         // these must be provided through extension point !\r
31 //        if (isElbow(translated)) {\r
32 //            addElbowConstraints(translated, detector);\r
33 //        } else if (isPipeControlPoint(translated)) {\r
34 //            addPipeControlPointConstraints(translated, detector);\r
35 //        } else if (isEndComponent(translated)) {\r
36 //              addEndComponentConstraints(translated, detector);\r
37 //        }\r
38         \r
39         \r
40     }\r
41     \r
42     /*\r
43      * These methods must be inserted into extension\r
44      */\r
45     \r
46 //    private static boolean isElbow(Resource translated[]) {\r
47 //        for (Resource r : translated) {\r
48 //            if (!r.isInstanceOf(GlobalIdMap.get(PSK3DModelingOntologyMapping.ELBOW))) {\r
49 //                return false;\r
50 //            }\r
51 //        }\r
52 //        return true;\r
53 //    }\r
54 //    \r
55 //    private static boolean isEndComponent(Resource translated[]) {\r
56 //        for (Resource r : translated) {\r
57 //            if (!r.isInstanceOf(GlobalIdMap.get(PSK3DModelingOntologyMapping.END_COMPONENT))) {\r
58 //                return false;\r
59 //            }\r
60 //        }\r
61 //        return true;\r
62 //    }\r
63 //    \r
64 //    private static boolean isPipeControlPoint(Resource translated[]) {\r
65 //        for (Resource r : translated) {\r
66 //            if (!r.isInstanceOf(GlobalIdMap.get(PSK3DModelingOntologyMapping.PIPE_CONTROL_POINT))) {\r
67 //                return false;\r
68 //            }\r
69 //        }\r
70 //        return true;\r
71 //    }\r
72 //    \r
73 //    private static void addElbowConstraints(Resource translated[], ConstraintDetector detector) {\r
74 //        Set<Resource> res = new HashSet<Resource>();\r
75 //        // add all controlpoints connected to every elbow's controlpoint\r
76 //        for (Resource r : translated) {\r
77 //            Elbow elbow = ElbowFactory.create(r);\r
78 //            PipeControlPoint p = elbow.getHasControlPoint();\r
79 //            PipeControlPoint next = PipingTools.findNextEnd(p);\r
80 //            PipeControlPoint previous = PipingTools.findPreviousEnd(p);\r
81 //            if (next != null)\r
82 //                res.add(next.getResource());\r
83 //            if (previous != null)\r
84 //                res.add(previous.getResource());\r
85 //            \r
86 //        }\r
87 //        // remove all controlpoints that are elbows' controlpoints\r
88 //        for (Resource r : translated) {\r
89 //            Elbow elbow = ElbowFactory.create(r);\r
90 //            res.remove(elbow.getHasControlPoint().getResource());\r
91 //        }\r
92 //        for (Resource r : res) {\r
93 //            PipeControlPoint p = PipeControlPointFactory.create(r);\r
94 //            detector.addContraintPoint(GraphicsNodeTools.getPoint(p.getLocalPosition()));\r
95 //        }\r
96 //    }\r
97 //    \r
98 //    private static void addEndComponentConstraints(Resource translated[], ConstraintDetector detector) {\r
99 //        Set<Resource> res = new HashSet<Resource>();\r
100 //        // add all controlpoints connected to every elbow's controlpoint\r
101 //        for (Resource r : translated) {\r
102 //            EndComponent elbow = EndComponentFactory.create(r);\r
103 //            PipeControlPoint p = elbow.getHasControlPoint();\r
104 //            PipeControlPoint next = PipingTools.findNextEnd(p);\r
105 //            PipeControlPoint previous = PipingTools.findPreviousEnd(p);\r
106 //            if (next != null)\r
107 //                res.add(next.getResource());\r
108 //            if (previous != null)\r
109 //                res.add(previous.getResource());\r
110 //            \r
111 //        }\r
112 //        // remove all controlpoints that are elbows' controlpoints\r
113 //        for (Resource r : translated) {\r
114 //              EndComponent elbow = EndComponentFactory.create(r);\r
115 //            res.remove(elbow.getHasControlPoint().getResource());\r
116 //        }\r
117 //        for (Resource r : res) {\r
118 //            PipeControlPoint p = PipeControlPointFactory.create(r);\r
119 //            detector.addContraintPoint(GraphicsNodeTools.getPoint(p.getLocalPosition()));\r
120 //        }\r
121 //    }\r
122 //    \r
123 //    \r
124 //    private static void addPipeControlPointConstraints(Resource translated[], ConstraintDetector detector) {\r
125 //        Set<Resource> res = new HashSet<Resource>();\r
126 //        // add all controlpoints connected to every elbow's controlpoint\r
127 //        for (Resource r : translated) {\r
128 //            PipeControlPoint p = PipeControlPointFactory.create(r);\r
129 //            PipeControlPoint next = PipingTools.findNextEnd(p);\r
130 //            PipeControlPoint previous = PipingTools.findPreviousEnd(p);\r
131 //            if (next != null)\r
132 //                res.add(next.getResource());\r
133 //            if (previous != null)\r
134 //                res.add(previous.getResource());\r
135 //            \r
136 //        }\r
137 //        // remove all controlpoints that are elbows' controlpoints\r
138 //        for (Resource r : translated) {\r
139 //            res.remove(r);\r
140 //        }\r
141 //        for (Resource r : res) {\r
142 //            PipeControlPoint p = PipeControlPointFactory.create(r);\r
143 //            detector.addContraintPoint(GraphicsNodeTools.getPoint(p.getLocalPosition()));\r
144 //        }\r
145 //    }\r
146 \r
147 }\r