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