Skip to content

Commit 49a54d8

Browse files
committed
restoring the parameters to the clone
1 parent 0ed5152 commit 49a54d8

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

src/main/java/com/neuronrobotics/bowlerstudio/scripting/cadoodle/CaDoodleFile.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.util.HashSet;
1313
import java.util.List;
1414
import java.util.Random;
15+
import java.util.Set;
1516
import java.util.concurrent.CopyOnWriteArrayList;
1617

1718
import javax.imageio.ImageIO;
@@ -422,10 +423,11 @@ private void storeResultInCache(ICaDoodleOpperation op, List<CSG> process) {
422423
}
423424
cache.put(op, cachedCopy);
424425
}
425-
private CSG cloneCSG(CSG in) {
426+
private CSG cloneCSG(CSG dyingCSG) {
426427
CSG csg = new CSG();
428+
427429
ArrayList<Polygon> collect = new ArrayList<Polygon>();
428-
for (Polygon p : in.getPolygons()) {
430+
for (Polygon p : dyingCSG.getPolygons()) {
429431
if (p == null)
430432
continue;
431433
try {
@@ -435,6 +437,22 @@ private CSG cloneCSG(CSG in) {
435437
}
436438
}
437439
csg.setPolygons(collect);
440+
Set<String> params = dyingCSG.getParameters();
441+
for (String param : params) {
442+
boolean existing = false;
443+
for (String s : csg.getParameters()) {
444+
if (s.contentEquals(param))
445+
existing = true;
446+
}
447+
if (!existing) {
448+
Parameter vals = CSGDatabase.get(param);
449+
if (vals != null)
450+
csg.setParameter(vals, dyingCSG.getMapOfparametrics().get(param));
451+
}
452+
}
453+
if (csg.getName().length() == 0)
454+
csg.setName(dyingCSG.getName());
455+
csg.setColor(dyingCSG.getColor());
438456
return csg;
439457
}
440458
public void back() {

0 commit comments

Comments
 (0)