Skip to content

Commit d44684a

Browse files
committed
Pass the ID along when doing a mutating operation to an object that
should still be the "same" object.
1 parent f1286d2 commit d44684a

File tree

5 files changed

+40
-17
lines changed

5 files changed

+40
-17
lines changed

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,10 @@ private TransformNR performTransform(Bounds reference, CSG incoming) {
160160
}
161161

162162
private CSG sync(CSG incoming, CSG c) {
163-
return c.syncProperties(getCaDoodleFile().getCsgDBinstance(),incoming).setName(incoming.getName()).setColor(incoming.getColor());
163+
return c.syncProperties(getCaDoodleFile().getCsgDBinstance(),incoming)
164+
.setName(incoming.getName())
165+
.setColor(incoming.getColor())
166+
.setID(incoming);
164167
}
165168

166169
public List<String> getNamesAddedInThisOperation() {

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

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -257,9 +257,9 @@ public void initialize() {
257257
getObjectDir();
258258
getCsgDBinstance();// initialize the instance on initialize
259259
// CSGDatabase.setInstance(getCsgDBinstance());
260-
bom = CaDoodleFile.getBillOfMaterials(this);
261-
bom.clear();
262-
bom.save();
260+
261+
getBom().clear();
262+
getBom().save();
263263
}
264264
int indexStarting = getCurrentIndex();
265265
if (indexStarting == 0) {
@@ -301,15 +301,16 @@ public void initialize() {
301301
initializing = false;
302302
}
303303

304-
private void updateBoM() {
304+
public void updateBoM() {
305305
if (bom == null)
306306
return;
307-
bom.clear();
308-
bom.save();
307+
getBom().clear();
308+
getBom().save();
309309
for (CSG c : getCurrentState()) {
310310
String type = null;
311311
String size = null;
312-
for (String param : c.getParameters(getCsgDBinstance())) {
312+
Set<String> parameters = c.getParameters(getCsgDBinstance());
313+
for (String param : parameters) {
313314
if (!param.contains(c.getName()))
314315
continue;
315316
if (param.contains("_CaDoodle_Vitamin_Type")) {
@@ -321,12 +322,13 @@ private void updateBoM() {
321322
size = p.getStrValue();
322323
}
323324
if (type != null && size != null) {
324-
bom.addVitamin(new VitaminLocation(false, c.getName(), type, size, new TransformNR()));
325+
getBom().addVitamin(new VitaminLocation(false, c.getName(), type, size, new TransformNR()));
325326
break;
326327
}
327328
}
329+
328330
}
329-
bom.save();
331+
getBom().save();
330332
}
331333

332334
public static VitaminBomManager getBillOfMaterials(CaDoodleFile cf) {
@@ -1057,15 +1059,21 @@ public File save() throws IOException {
10571059
com.neuronrobotics.sdk.common.Log.error(e);
10581060
}
10591061
}
1060-
if (bom != null)
1061-
bom.save();
1062+
if (getBom() != null)
1063+
getBom().save();
10621064
if (isTimelineOpen())
10631065
getSaveUpdate().renderSplashFrame(100, "Doodle save Done ");
10641066
fireTimelineUpdate(num);
10651067
// System.gc();
10661068
return getSelf();
10671069
}
1070+
public File getBomFile() {
1071+
return getBom().getBomFile();
1072+
}
10681073

1074+
public File getBomCsv() {
1075+
return getBom().getBomCsv();
1076+
}
10691077
public File getSTLThumbnailFile() {
10701078
File back = new File(getSTLThumbnailLocation());
10711079
return back;
@@ -1416,5 +1424,11 @@ public File getImageCacheDir() {
14161424
return imageCacheDir;
14171425
}
14181426

1427+
public VitaminBomManager getBom() {
1428+
if(bom==null) {
1429+
bom=CaDoodleFile.getBillOfMaterials(this);
1430+
}
1431+
return bom;
1432+
}
14191433

14201434
}

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,11 @@ public String getType() {
3939
}
4040

4141
private CSG sync(CSG incoming, CSG c) {
42-
return c.syncProperties(getCaDoodleFile().getCsgDBinstance(),incoming).setName(incoming.getName()).setColor(incoming.getColor());
43-
}
42+
return c.syncProperties(getCaDoodleFile().getCsgDBinstance(),incoming)
43+
.setName(incoming.getName())
44+
.setColor(incoming.getColor())
45+
.setID(incoming);
46+
}
4447

4548
@Override
4649
public List<CSG> process(List<CSG> incoming) {

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,10 @@ public ArrayList<CSG> process(CSG incoming, int depth) {
9999
if(incoming.isMotionLock()) {
100100
nrToCSG2=new Transform();
101101
}
102-
CSG tmpToAdd = incoming.transformed(nrToCSG2).syncProperties(getCaDoodleFile().getCsgDBinstance(),incoming).setName(incoming.getName());
102+
CSG tmpToAdd = incoming.transformed(nrToCSG2)
103+
.syncProperties(getCaDoodleFile().getCsgDBinstance(),incoming)
104+
.setName(incoming.getName())
105+
.setID(incoming);
103106
ArrayList<CSG> b = new ArrayList<>();
104107
b.add(tmpToAdd);
105108
set(getName(), tmpToAdd, location);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ private void resizeByName(String name, ArrayList<CSG> back, HashMap<String, Resi
154154
if (debug != null) {
155155
debug.setCsg(resizeUp, null);
156156
}
157-
resizeUp.syncProperties(getCaDoodleFile().getCsgDBinstance(),starting).setName(name);
157+
resizeUp.syncProperties(getCaDoodleFile().getCsgDBinstance(),starting).setName(name).setID(starting);
158158
ResizeEvent ev = new ResizeEvent();
159159
ev.movex = xMove;
160160
ev.movey = yMove;
@@ -186,7 +186,7 @@ private void processCompositMembers(String name, ArrayList<CSG> back,
186186
gc = gc.movez(ev.movez);
187187
gc = gc.transformed(ev.scale);
188188
gc = gc.movex(ev.movex).movey(ev.movey).transformed(TransformFactory.nrToCSG(getWorkplane()));
189-
gc.syncProperties(getCaDoodleFile().getCsgDBinstance(),c).setName(c.getName());
189+
gc.syncProperties(getCaDoodleFile().getCsgDBinstance(),c).setName(c.getName()).setID(c);
190190
back.set(i, gc);
191191
if (c.isGroupResult()) {
192192
groupsProcessed.put(c.getName(), ev);

0 commit comments

Comments
 (0)