From ffbebf6241be357143431d433c2be79cdf319ed7 Mon Sep 17 00:00:00 2001 From: Kevin Harrington Date: Wed, 10 Apr 2024 18:04:54 -0400 Subject: [PATCH] pass in the offset for the placed vitamins too --- .../creature/MobileBaseCadManager.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/neuronrobotics/bowlerstudio/creature/MobileBaseCadManager.java b/src/main/java/com/neuronrobotics/bowlerstudio/creature/MobileBaseCadManager.java index cb4bda92..f2aab2bf 100644 --- a/src/main/java/com/neuronrobotics/bowlerstudio/creature/MobileBaseCadManager.java +++ b/src/main/java/com/neuronrobotics/bowlerstudio/creature/MobileBaseCadManager.java @@ -96,14 +96,16 @@ public class MobileBaseCadManager implements Runnable { private ArrayList rendersync=new ArrayList<>(); private boolean forceChage = true; public CSG getVitamin(VitaminLocation vitamin) throws Exception { - return getVitamin(vitamin,new Affine()); + return getVitamin(vitamin,new Affine(),null); } - public CSG getVitamin(VitaminLocation vitamin,Affine manipulator) { + public CSG getVitamin(VitaminLocation vitamin,Affine manipulator,TransformNR offset) { if(!vitaminCad.containsKey(vitamin)) { CSG starting; try { - starting = Vitamins.get(vitamin.getType(), vitamin.getSize()) - .transformed(TransformFactory.nrToCSG(vitamin.getLocation())); + starting = Vitamins.get(vitamin.getType(), vitamin.getSize()); + if(offset!=null) + starting=starting.transformed(TransformFactory.nrToCSG(offset)); + starting=starting.transformed(TransformFactory.nrToCSG(vitamin.getLocation())); starting.setIsWireFrame(true); } catch (Exception e) { // TODO Auto-generated catch block @@ -117,28 +119,28 @@ public CSG getVitamin(VitaminLocation vitamin,Affine manipulator) { } public ArrayList getVitamins(IVitaminHolder link,Affine manipulator) { ArrayList vitamins = link.getVitamins(); - return toVitaminCad(vitamins,manipulator); + return toVitaminCad(vitamins,manipulator,null); } - public ArrayList getOriginVitamins(IVitaminHolder link,Affine manipulator){ + public ArrayList getOriginVitamins(IVitaminHolder link,Affine manipulator,TransformNR offset){ ArrayList vitamins = link.getOriginVitamins(); - return toVitaminCad(vitamins,manipulator); + return toVitaminCad(vitamins,manipulator,offset); } public ArrayList getDefaultVitamins(IVitaminHolder link,Affine manipulator){ ArrayList vitamins = link.getDefaultVitamins(); - return toVitaminCad(vitamins,manipulator); + return toVitaminCad(vitamins,manipulator,null); } public ArrayList getPreviousLinkVitamins(IVitaminHolder link,Affine manipulator){ ArrayList vitamins = link.getPreviousLinkVitamins(); - return toVitaminCad(vitamins,manipulator); + return toVitaminCad(vitamins,manipulator,null); } - private ArrayList toVitaminCad(ArrayList vitamins,Affine manipulator) { + private ArrayList toVitaminCad(ArrayList vitamins,Affine manipulator, TransformNR offset) { ArrayList parts = new ArrayList(); for(VitaminLocation vi:vitamins) { CSG vitamin; try { - vitamin = getVitamin(vi,manipulator); + vitamin = getVitamin(vi,manipulator,offset); parts.add(vitamin); } catch (Exception e) { // TODO Auto-generated catch block