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
9 * VTT Technical Research Centre of Finland - initial API and implementation
\r
10 *******************************************************************************/
\r
11 package org.simantics.proconf.g3d.actions;
\r
13 import org.simantics.db.Resource;
\r
14 import org.simantics.proconf.g3d.base.ConstraintDetector;
\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
22 * @author Marko Luukkainen
\r
25 public class TranslateActionConstraints {
\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
43 * These methods must be inserted into extension
\r
46 // private static boolean isElbow(Resource translated[]) {
\r
47 // for (Resource r : translated) {
\r
48 // if (!r.isInstanceOf(GlobalIdMap.get(PSK3DModelingOntologyMapping.ELBOW))) {
\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
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
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
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
92 // for (Resource r : res) {
\r
93 // PipeControlPoint p = PipeControlPointFactory.create(r);
\r
94 // detector.addContraintPoint(GraphicsNodeTools.getPoint(p.getLocalPosition()));
\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
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
117 // for (Resource r : res) {
\r
118 // PipeControlPoint p = PipeControlPointFactory.create(r);
\r
119 // detector.addContraintPoint(GraphicsNodeTools.getPoint(p.getLocalPosition()));
\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
137 // // remove all controlpoints that are elbows' controlpoints
\r
138 // for (Resource r : translated) {
\r
141 // for (Resource r : res) {
\r
142 // PipeControlPoint p = PipeControlPointFactory.create(r);
\r
143 // detector.addContraintPoint(GraphicsNodeTools.getPoint(p.getLocalPosition()));
\r