Skip to content

Commit

Permalink
Adding vitamins to the screen when created instantly and removing the
Browse files Browse the repository at this point in the history
stale ones
  • Loading branch information
Kevin Harrington committed Jul 10, 2024
1 parent 8036fac commit cf2ef58
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public static String[] copyGitFile(String sourceGit, String targetGit, String fi

public static void addVitamins(IVitaminHolder vitamins, TreeItem<String> rootItem,
HashMap<TreeItem<String>, Runnable> callbackMapForTreeitems,
HashMap<TreeItem<String>, Parent> widgetMapForTreeitems,ITransformProvider tfp) {
HashMap<TreeItem<String>, Parent> widgetMapForTreeitems,ITransformProvider tfp,Affine manipulator, Affine lastLink, TransformNR offset) {
TreeItem<String> vitaminsMenu = new TreeItem<String>("Vitamins Add/Remove",
AssetFactory.loadIcon("Vitamins.png"));
HashMap<Parent,VitatminWidget> widget = new HashMap<>();
Expand All @@ -80,7 +80,9 @@ public static void addVitamins(IVitaminHolder vitamins, TreeItem<String> rootIt
Parent w = loader.load();
VitatminWidget tw = loader.getController();
tw.setVitaminProvider(vitamins,tfp);

tw.setManipulator(manipulator);
tw.setLastLinkAffine(lastLink);
tw.setOffset(offset);
//Group value = new Group(w);
widgetMapForTreeitems.put(vitaminsMenu, w);
widget.put(w, tw);
Expand Down Expand Up @@ -571,7 +573,7 @@ public void onTransformChaging(TransformNR newTrans) {
rootItem.getChildren().addAll(bodymass, imuCenter,PlaceLimb);
addVitamins( device, rootItem, callbackMapForTreeitems, widgetMapForTreeitems, selected->{
return device.forwardOffset(new TransformNR());
});
},(Affine)device.getRootListener(),(Affine)device.getRootListener(),new TransformNR());
if (root)
rootItem.getChildren().addAll( printable,arrangeBed, kinematics);
rootItem.getChildren().addAll(addArm, addleg, addFixed, addsteerable);
Expand Down Expand Up @@ -1104,6 +1106,10 @@ public void onSliderDoneMoving(EngineeringUnitsSliderWidget source, double newAn


link.getChildren().addAll(design);
Affine manipulator = (Affine) dh.getListener(linkIndex);
TransformNR offset = dh.getDHStep(linkIndex).inverse();
Affine lastLinkAffine = linkIndex==0? (Affine) dh.getRootListener() :(Affine) dh.getListener(linkIndex-1);

addVitamins( dh.getLinkConfiguration(linkIndex), link, callbackMapForTreeitems, widgetMapForTreeitems,selected->{
Affine linkObjectManipulator = (Affine) dh.getLinkObjectManipulator(linkIndex);
TransformNR pose = TransformFactory.affineToNr(linkObjectManipulator);
Expand All @@ -1120,7 +1126,7 @@ public void onSliderDoneMoving(EngineeringUnitsSliderWidget source, double newAn
pose = TransformFactory.affineToNr(ll);
}
return pose;
});
},manipulator,lastLinkAffine,offset);


link.getChildren().addAll(slaves, remove);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import java.util.ResourceBundle;
import java.util.stream.Collectors;

import com.neuronrobotics.bowlerstudio.BowlerStudio;
import com.neuronrobotics.bowlerstudio.BowlerStudioController;
import com.neuronrobotics.bowlerstudio.assets.AssetFactory;
import com.neuronrobotics.bowlerstudio.assets.FontSizeManager;
Expand Down Expand Up @@ -66,7 +67,10 @@ public class VitatminWidget implements IOnTransformChange {
private HashMap<GridPane, VitaminLocation> locationMap = new HashMap<>();
private VitaminLocation selectedVitamin;
private ITransformProvider currentTipProvider;

private Affine lastLinkAffine = null;
private Affine manipulator=null;
private TransformNR offset= new TransformNR();

@FXML
void onAdd(ActionEvent event) {
VitaminLocation newVit = new VitaminLocation(isScript.isSelected(),name.getText(), selectedType, sizeSelected, tf.getCurrent());
Expand All @@ -77,6 +81,28 @@ void onAdd(ActionEvent event) {
holder.addVitamin(newVit);
add(newVit);
validateInput();
CSG newDisplay = getCSG(newVit);
if(newDisplay!=null) {
BowlerStudioController.addCsg(newDisplay);
}

}

private CSG getCSG(VitaminLocation newVit) {
MobileBaseCadManager manager = MobileBaseCadManager.get(holder);
CSG newDisplay=null;
switch(newVit.getFrame()) {
case DefaultFrame:
newDisplay = manager.getVitaminDisplay(newVit, manipulator, new TransformNR());
break;
case LinkOrigin:
newDisplay = manager.getVitaminDisplay(newVit, manipulator, offset);
break;
case previousLinkTip:
newDisplay = manager.getVitaminDisplay(newVit, lastLinkAffine, new TransformNR());
break;
}
return newDisplay;
}

private void add(VitaminLocation newVit) {
Expand All @@ -100,6 +126,9 @@ private void add(VitaminLocation newVit) {
holder.removeVitamin(newVit);
validateInput();
locationMap.remove(box);
CSG part = getCSG( newVit);
if(part!=null)
BowlerStudioController.removeObject(part);
});
box.add(remove, 0, 0);
box.add(new Label(newVit.getName()), 1, 0);
Expand Down Expand Up @@ -270,4 +299,28 @@ public void onTransformChaging(TransformNR newTrans) {
public void onTransformFinished(TransformNR newTrans) {
selectedVitamin.setLocation(newTrans);
}

public Affine getLastLinkAffine() {
return lastLinkAffine;
}

public void setLastLinkAffine(Affine lastLinkAffine) {
this.lastLinkAffine = lastLinkAffine;
}

public Affine getManipulator() {
return manipulator;
}

public void setManipulator(Affine manipulator) {
this.manipulator = manipulator;
}

public TransformNR getOffset() {
return offset;
}

public void setOffset(TransformNR offset) {
this.offset = offset;
}
}

0 comments on commit cf2ef58

Please sign in to comment.