diff --git a/src/main/java/com/neuronrobotics/bowlerstudio/scripting/cadoodle/CaDoodleJsonOperationAdapterFactory.java b/src/main/java/com/neuronrobotics/bowlerstudio/scripting/cadoodle/CaDoodleJsonOperationAdapterFactory.java index 05bc8413..a74537bb 100644 --- a/src/main/java/com/neuronrobotics/bowlerstudio/scripting/cadoodle/CaDoodleJsonOperationAdapterFactory.java +++ b/src/main/java/com/neuronrobotics/bowlerstudio/scripting/cadoodle/CaDoodleJsonOperationAdapterFactory.java @@ -30,8 +30,9 @@ public CaDoodleJsonOperationAdapterFactory() { registerType("Lock", Lock.class); registerType("MakeRobot", MakeRobot.class); registerType("Mirror", Mirror.class); - registerType("MoveCenter", MoveCenter.class); + registerType("ModelNotes", ModelNotes.class); registerType("ModifyLimb", ModifyLimb.class); + registerType("MoveCenter", MoveCenter.class); registerType("Paste", Paste.class); registerType("Resize", Resize.class); registerType("Show", Show.class); diff --git a/src/main/java/com/neuronrobotics/bowlerstudio/scripting/cadoodle/ModelNotes.java b/src/main/java/com/neuronrobotics/bowlerstudio/scripting/cadoodle/ModelNotes.java new file mode 100644 index 00000000..4d427c05 --- /dev/null +++ b/src/main/java/com/neuronrobotics/bowlerstudio/scripting/cadoodle/ModelNotes.java @@ -0,0 +1,41 @@ +package com.neuronrobotics.bowlerstudio.scripting.cadoodle; + +import java.util.ArrayList; +import java.util.List; + +import com.google.gson.annotations.Expose; +import com.neuronrobotics.sdk.addons.kinematics.math.TransformNR; + +import eu.mihosoft.vrl.v3d.CSG; + +public class ModelNotes extends CaDoodleOperation{ + @Expose (serialize = true, deserialize = true) + TransformNR location=null; + @Expose (serialize = true, deserialize = true) + String text=null; + + @Override + public String getType() { + return "ModelNotes"; + } + + @Override + public List process(List incoming) { + // no change to the models when adding a note + return incoming; + } + + @Override + public List getNamesAddedInThisOperation() { + return new ArrayList(); + } + public ModelNotes setLocation(TransformNR tf) { + location=tf; + return this; + } + public ModelNotes setText(String tx) { + text=tx; + return this; + } + +} diff --git a/test/java/src/junit/bowler/CaDoodleWorkflowTest.java b/test/java/src/junit/bowler/CaDoodleWorkflowTest.java index 10f93009..ecada351 100644 --- a/test/java/src/junit/bowler/CaDoodleWorkflowTest.java +++ b/test/java/src/junit/bowler/CaDoodleWorkflowTest.java @@ -14,6 +14,7 @@ import org.eclipse.jgit.api.errors.TransportException; import org.junit.Before; import org.junit.Test; + import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; @@ -26,7 +27,9 @@ import com.neuronrobotics.bowlerstudio.scripting.cadoodle.AddFromScript; import com.neuronrobotics.bowlerstudio.scripting.cadoodle.CaDoodleFile; +import com.neuronrobotics.bowlerstudio.scripting.cadoodle.CaDoodleOperation; import com.neuronrobotics.bowlerstudio.scripting.cadoodle.Group; +import com.neuronrobotics.bowlerstudio.scripting.cadoodle.ModelNotes; import com.neuronrobotics.bowlerstudio.scripting.cadoodle.MoveCenter; import com.neuronrobotics.bowlerstudio.scripting.cadoodle.Paste; import com.neuronrobotics.bowlerstudio.scripting.cadoodle.Resize; @@ -257,6 +260,11 @@ public void test() throws Exception { mr.setNames(selectAll); loaded.addOpperation(mr).join(); + ModelNotes setText = new ModelNotes() + .setLocation(new TransformNR(0, 0, 20)) + .setText("A note is here"); + loaded.addOpperation(setText).join(); + loaded.save(); ScriptingEngine.pull(ControllerOption.URL_OF_OPTIONS); ArrayList controllers = ControllerOption.getOptions();