|
20 | 20 | import eu.mihosoft.vrl.v3d.CSG; |
21 | 21 | import eu.mihosoft.vrl.v3d.Transform; |
22 | 22 | import eu.mihosoft.vrl.v3d.parametrics.CSGDatabase; |
| 23 | +import eu.mihosoft.vrl.v3d.parametrics.CSGDatabaseInstance; |
23 | 24 | import eu.mihosoft.vrl.v3d.parametrics.Parameter; |
24 | 25 |
|
25 | 26 | public class Paste extends AbstractAddFrom { |
@@ -96,14 +97,20 @@ private ArrayList<CSG> copyPasteMoved(ArrayList<CSG> back, CSG c, int depth) { |
96 | 97 | CSG clone = c.clone(); |
97 | 98 | clone.setRegenerate(c.getRegenerate()).setName(name); |
98 | 99 | clone.getStorage().set("PreviousName", prevName); |
| 100 | + CSGDatabaseInstance db = getDb(); |
| 101 | + clone.syncParameter(db, c); |
99 | 102 | Transform nrToCSG = MoveCenter.getTotalOffset(c); |
100 | | - |
101 | 103 | Transform nrToCSG2 = TransformFactory.nrToCSG(location); |
102 | 104 | CSG newOne = null; |
103 | | - if (new CaDoodleVitamin(getCaDoodleFile().getCsgDBinstance()).isVitamin(c)) { |
104 | | - CSG regenerate = clone.getRegenerate().regenerate(clone); |
| 105 | + CaDoodleVitamin caDoodleVitamin = new CaDoodleVitamin(db); |
| 106 | + if (caDoodleVitamin.isVitamin(c)) { |
| 107 | + CSG regenerate = c.getRegenerate().regenerate(clone); |
105 | 108 | newOne = regenerate.transformed(nrToCSG).transformed(nrToCSG2); |
106 | | - newOne.setRegenerate(regenerate.getRegenerate()); |
| 109 | + newOne.setRegenerate(regenerate.getRegenerate()).setName(name); |
| 110 | + newOne.setID(regenerate); |
| 111 | + if(!caDoodleVitamin.isVitamin(newOne)) { |
| 112 | + throw new RuntimeException("Failed to create the vitamin"); |
| 113 | + } |
107 | 114 | }else { |
108 | 115 | newOne = clone.transformed(nrToCSG2); |
109 | 116 | newOne.setRegenerate(c.getRegenerate()); |
|
0 commit comments