diff --git a/Gui/opensim/branding/core/core.jar/org/netbeans/core/startup/Bundle.properties b/Gui/opensim/branding/core/core.jar/org/netbeans/core/startup/Bundle.properties index 0cdd08bdc..45a79e487 100644 --- a/Gui/opensim/branding/core/core.jar/org/netbeans/core/startup/Bundle.properties +++ b/Gui/opensim/branding/core/core.jar/org/netbeans/core/startup/Bundle.properties @@ -1,4 +1,4 @@ -currentVersion=OpenSim 4.4 +currentVersion=OpenSim 4.5 SPLASH_HEIGHT=472 SPLASH_WIDTH=380 SplashProgressBarBounds=0,466,380,6 @@ -6,5 +6,5 @@ SplashProgressBarColor=0xD1E27F SplashRunningTextBounds=8,455,163,8 SplashRunningTextColor=0xFFFFFF SplashRunningTextFontSize=15 -LBL_splash_window_title=Starting OpenSim 4.4 +LBL_splash_window_title=Starting OpenSim 4.5 SplashShowProgressBar=true diff --git a/Gui/opensim/branding/core/core.jar/org/netbeans/core/startup/splash.gif b/Gui/opensim/branding/core/core.jar/org/netbeans/core/startup/splash.gif index 84487f583..e280f63a8 100644 Binary files a/Gui/opensim/branding/core/core.jar/org/netbeans/core/startup/splash.gif and b/Gui/opensim/branding/core/core.jar/org/netbeans/core/startup/splash.gif differ diff --git a/Gui/opensim/branding/modules/org-netbeans-core-windows.jar/org/netbeans/core/windows/view/ui/Bundle.properties b/Gui/opensim/branding/modules/org-netbeans-core-windows.jar/org/netbeans/core/windows/view/ui/Bundle.properties index 86ce1852d..34691af98 100644 --- a/Gui/opensim/branding/modules/org-netbeans-core-windows.jar/org/netbeans/core/windows/view/ui/Bundle.properties +++ b/Gui/opensim/branding/modules/org-netbeans-core-windows.jar/org/netbeans/core/windows/view/ui/Bundle.properties @@ -1,3 +1,3 @@ -CTL_MainWindow_Title=OpenSim 4.4 -CTL_MainWindow_Title_No_Project=OpenSim 4.4 +CTL_MainWindow_Title=OpenSim 4.5 +CTL_MainWindow_Title_No_Project=OpenSim 4.5 diff --git a/Gui/opensim/helpUtils/src/org/opensim/helputils/helpmenu/OpenDoxygenAction.java b/Gui/opensim/helpUtils/src/org/opensim/helputils/helpmenu/OpenDoxygenAction.java index 6f7d469d9..b3757ae4e 100644 --- a/Gui/opensim/helpUtils/src/org/opensim/helputils/helpmenu/OpenDoxygenAction.java +++ b/Gui/opensim/helpUtils/src/org/opensim/helputils/helpmenu/OpenDoxygenAction.java @@ -47,7 +47,7 @@ public final class OpenDoxygenAction extends CallableSystemAction { public void performAction() { try { String basePath = TheApp.getCrossPlatformInstallDir(); - String doxygenPath = BrowserLauncher.isConnected() ? "https://simtk.org/api_docs/opensim/api_docs44/" : + String doxygenPath = BrowserLauncher.isConnected() ? "https://simtk.org/api_docs/opensim/api_docs45/" : new File(basePath + "/sdk/doc/OpenSimAPI.html").toURI().toURL().toString(); BrowserLauncher.openURL(doxygenPath); diff --git a/Gui/opensim/helpUtils/src/org/opensim/helputils/helpmenu/images/splash.gif b/Gui/opensim/helpUtils/src/org/opensim/helputils/helpmenu/images/splash.gif index 741f423d1..e280f63a8 100644 Binary files a/Gui/opensim/helpUtils/src/org/opensim/helputils/helpmenu/images/splash.gif and b/Gui/opensim/helpUtils/src/org/opensim/helputils/helpmenu/images/splash.gif differ diff --git a/Gui/opensim/modeling/src/org/opensim/modeling/MocoTrajectory.java b/Gui/opensim/modeling/src/org/opensim/modeling/MocoTrajectory.java index 5d1f62e3b..79edea599 100644 --- a/Gui/opensim/modeling/src/org/opensim/modeling/MocoTrajectory.java +++ b/Gui/opensim/modeling/src/org/opensim/modeling/MocoTrajectory.java @@ -623,6 +623,14 @@ public int getNumSpeeds() { return opensimMocoJNI.MocoTrajectory_getNumSpeeds(swigCPtr, this); } + public int getNumMultibodyStates() { + return opensimMocoJNI.MocoTrajectory_getNumMultibodyStates(swigCPtr, this); + } + + public int getNumAuxiliaryStates() { + return opensimMocoJNI.MocoTrajectory_getNumAuxiliaryStates(swigCPtr, this); + } + public int getNumAccelerations() { return opensimMocoJNI.MocoTrajectory_getNumAccelerations(swigCPtr, this); } @@ -659,6 +667,14 @@ public StdVectorString getSpeedNames() { return new StdVectorString(opensimMocoJNI.MocoTrajectory_getSpeedNames(swigCPtr, this), true); } + public StdVectorString getMultibodyStateNames() { + return new StdVectorString(opensimMocoJNI.MocoTrajectory_getMultibodyStateNames(swigCPtr, this), true); + } + + public StdVectorString getAuxiliaryStateNames() { + return new StdVectorString(opensimMocoJNI.MocoTrajectory_getAuxiliaryStateNames(swigCPtr, this), true); + } + public StdVectorString getAccelerationNames() { return new StdVectorString(opensimMocoJNI.MocoTrajectory_getAccelerationNames(swigCPtr, this), true); } @@ -715,6 +731,14 @@ public Matrix getSpeedsTrajectory() { return new Matrix(opensimMocoJNI.MocoTrajectory_getSpeedsTrajectory(swigCPtr, this), true); } + public Matrix getMultibodyStatesTrajectory() { + return new Matrix(opensimMocoJNI.MocoTrajectory_getMultibodyStatesTrajectory(swigCPtr, this), true); + } + + public Matrix getAuxiliaryStatesTrajectory() { + return new Matrix(opensimMocoJNI.MocoTrajectory_getAuxiliaryStatesTrajectory(swigCPtr, this), true); + } + public Matrix getAccelerationsTrajectory() { return new Matrix(opensimMocoJNI.MocoTrajectory_getAccelerationsTrajectory(swigCPtr, this), true); } diff --git a/Gui/opensim/modeling/src/org/opensim/modeling/Model.java b/Gui/opensim/modeling/src/org/opensim/modeling/Model.java index b87c0e312..cc229de35 100644 --- a/Gui/opensim/modeling/src/org/opensim/modeling/Model.java +++ b/Gui/opensim/modeling/src/org/opensim/modeling/Model.java @@ -1217,6 +1217,27 @@ public SWIGTYPE_p_SimTK__GeneralForceSubsystem updForceSubsystem() { return new SWIGTYPE_p_SimTK__GeneralForceSubsystem(opensimSimulationJNI.Model_updForceSubsystem(swigCPtr, this), false); } + /** + * (Advanced) Get read only access to internal Simbody RigidBodyForces at Dynamics stage * + */ + public VectorOfSpatialVec getRigidBodyForces(State state) { + return new VectorOfSpatialVec(opensimSimulationJNI.Model_getRigidBodyForces(swigCPtr, this, State.getCPtr(state), state), false); + } + + /** + * (Advanced) Get read only access to internal Simbody Mobility Forces at Dynamics stage * + */ + public Vector getMobilityForces(State state) { + return new Vector(opensimSimulationJNI.Model_getMobilityForces(swigCPtr, this, State.getCPtr(state), state), false); + } + + /** + * (Advanced) Get read only access to internal Simbody Body Forces due to Gravity * + */ + public VectorOfSpatialVec getGravityBodyForces(State state) { + return new VectorOfSpatialVec(opensimSimulationJNI.Model_getGravityBodyForces(swigCPtr, this, State.getCPtr(state), state), false); + } + /** * ** Perform computations that depend only on time and earlier stages. * */ diff --git a/Gui/opensim/modeling/src/org/opensim/modeling/PolynomialPathFitter.java b/Gui/opensim/modeling/src/org/opensim/modeling/PolynomialPathFitter.java index 85d024a06..b4c8d21d2 100644 --- a/Gui/opensim/modeling/src/org/opensim/modeling/PolynomialPathFitter.java +++ b/Gui/opensim/modeling/src/org/opensim/modeling/PolynomialPathFitter.java @@ -197,11 +197,12 @@ public PolynomialPathFitter(PolynomialPathFitter arg0) { * polynomial-based path objects will be fitted.
*
* The model should be provided using a `ModelProcessor` object. We expect
- * the model to contain at least one path object derived from `AbstractGeometryPath`
- * and does not already contain any `FunctionBasedPath` objects. The bounds
- * for clamped coordinates are obeyed during the fitting process. Locked
- * coordinates are unlocked if data is provided for them, or replaced with
- * WeldJoints if no data is provided for them. + * the model to contain at least one path object derived from
+ * `AbstractGeometryPath` and does not already contain any
+ * `FunctionBasedPath` objects. The bounds for clamped coordinates are
+ * obeyed during the fitting process. Locked coordinates are unlocked if
+ * data is provided for them, or replaced with WeldJoints if no data is
+ * provided for them. */ public void setModel(ModelProcessor model) { opensimActuatorsAnalysesToolsJNI.PolynomialPathFitter_setModel(swigCPtr, this, ModelProcessor.getCPtr(model), model); diff --git a/Gui/opensim/modeling/src/org/opensim/modeling/SmoothSegmentedFunction.java b/Gui/opensim/modeling/src/org/opensim/modeling/SmoothSegmentedFunction.java index 15407868c..8a9b223f6 100644 --- a/Gui/opensim/modeling/src/org/opensim/modeling/SmoothSegmentedFunction.java +++ b/Gui/opensim/modeling/src/org/opensim/modeling/SmoothSegmentedFunction.java @@ -142,6 +142,75 @@ public double calcDerivative(double x, int order) { return opensimCommonJNI.SmoothSegmentedFunction_calcDerivative(swigCPtr, this, x, order); } + static public class ValueAndDerivative { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + public ValueAndDerivative(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + public static long getCPtr(ValueAndDerivative obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + public static long swigRelease(ValueAndDerivative obj) { + long ptr = 0; + if (obj != null) { + if (!obj.swigCMemOwn) + throw new RuntimeException("Cannot release ownership as memory is not owned"); + ptr = obj.swigCPtr; + obj.swigCMemOwn = false; + obj.delete(); + } + return ptr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + opensimCommonJNI.delete_SmoothSegmentedFunction_ValueAndDerivative(swigCPtr); + } + swigCPtr = 0; + } + } + + public void setValue(double value) { + opensimCommonJNI.SmoothSegmentedFunction_ValueAndDerivative_value_set(swigCPtr, this, value); + } + + public double getValue() { + return opensimCommonJNI.SmoothSegmentedFunction_ValueAndDerivative_value_get(swigCPtr, this); + } + + public void setDerivative(double value) { + opensimCommonJNI.SmoothSegmentedFunction_ValueAndDerivative_derivative_set(swigCPtr, this, value); + } + + public double getDerivative() { + return opensimCommonJNI.SmoothSegmentedFunction_ValueAndDerivative_derivative_get(swigCPtr, this); + } + + public ValueAndDerivative() { + this(opensimCommonJNI.new_SmoothSegmentedFunction_ValueAndDerivative(), true); + } + + } + + /** + * Returns the same as calcValue(x) and calcDerivative(x, 1), but more + */ + public SmoothSegmentedFunction.ValueAndDerivative calcValueAndFirstDerivative(double x) { + return new SmoothSegmentedFunction.ValueAndDerivative(opensimCommonJNI.SmoothSegmentedFunction_calcValueAndFirstDerivative(swigCPtr, this, x), true); + } + /** * This will return the value of the integral of this objects curve
* evaluated at x.
diff --git a/Gui/opensim/modeling/src/org/opensim/modeling/opensimCommonJNI.java b/Gui/opensim/modeling/src/org/opensim/modeling/opensimCommonJNI.java index 0cf52edf7..26a4cd751 100644 --- a/Gui/opensim/modeling/src/org/opensim/modeling/opensimCommonJNI.java +++ b/Gui/opensim/modeling/src/org/opensim/modeling/opensimCommonJNI.java @@ -1078,6 +1078,13 @@ public class opensimCommonJNI { public final static native void delete_SmoothSegmentedFunction(long jarg1); public final static native double SmoothSegmentedFunction_calcValue(long jarg1, SmoothSegmentedFunction jarg1_, double jarg2); public final static native double SmoothSegmentedFunction_calcDerivative(long jarg1, SmoothSegmentedFunction jarg1_, double jarg2, int jarg3); + public final static native void SmoothSegmentedFunction_ValueAndDerivative_value_set(long jarg1, SmoothSegmentedFunction.ValueAndDerivative jarg1_, double jarg2); + public final static native double SmoothSegmentedFunction_ValueAndDerivative_value_get(long jarg1, SmoothSegmentedFunction.ValueAndDerivative jarg1_); + public final static native void SmoothSegmentedFunction_ValueAndDerivative_derivative_set(long jarg1, SmoothSegmentedFunction.ValueAndDerivative jarg1_, double jarg2); + public final static native double SmoothSegmentedFunction_ValueAndDerivative_derivative_get(long jarg1, SmoothSegmentedFunction.ValueAndDerivative jarg1_); + public final static native long new_SmoothSegmentedFunction_ValueAndDerivative(); + public final static native void delete_SmoothSegmentedFunction_ValueAndDerivative(long jarg1); + public final static native long SmoothSegmentedFunction_calcValueAndFirstDerivative(long jarg1, SmoothSegmentedFunction jarg1_, double jarg2); public final static native double SmoothSegmentedFunction_calcIntegral(long jarg1, SmoothSegmentedFunction jarg1_, double jarg2); public final static native boolean SmoothSegmentedFunction_isIntegralAvailable(long jarg1, SmoothSegmentedFunction jarg1_); public final static native boolean SmoothSegmentedFunction_isIntegralComputedLeftToRight(long jarg1, SmoothSegmentedFunction jarg1_); diff --git a/Gui/opensim/modeling/src/org/opensim/modeling/opensimMocoJNI.java b/Gui/opensim/modeling/src/org/opensim/modeling/opensimMocoJNI.java index 9bdd97a94..10409998a 100644 --- a/Gui/opensim/modeling/src/org/opensim/modeling/opensimMocoJNI.java +++ b/Gui/opensim/modeling/src/org/opensim/modeling/opensimMocoJNI.java @@ -1134,6 +1134,8 @@ public class opensimMocoJNI { public final static native int MocoTrajectory_getNumDerivatives(long jarg1, MocoTrajectory jarg1_); public final static native int MocoTrajectory_getNumValues(long jarg1, MocoTrajectory jarg1_); public final static native int MocoTrajectory_getNumSpeeds(long jarg1, MocoTrajectory jarg1_); + public final static native int MocoTrajectory_getNumMultibodyStates(long jarg1, MocoTrajectory jarg1_); + public final static native int MocoTrajectory_getNumAuxiliaryStates(long jarg1, MocoTrajectory jarg1_); public final static native int MocoTrajectory_getNumAccelerations(long jarg1, MocoTrajectory jarg1_); public final static native int MocoTrajectory_getNumDerivativesWithoutAccelerations(long jarg1, MocoTrajectory jarg1_); public final static native int MocoTrajectory_getNumParameters(long jarg1, MocoTrajectory jarg1_); @@ -1143,6 +1145,8 @@ public class opensimMocoJNI { public final static native long MocoTrajectory_getDerivativeNames(long jarg1, MocoTrajectory jarg1_); public final static native long MocoTrajectory_getValueNames(long jarg1, MocoTrajectory jarg1_); public final static native long MocoTrajectory_getSpeedNames(long jarg1, MocoTrajectory jarg1_); + public final static native long MocoTrajectory_getMultibodyStateNames(long jarg1, MocoTrajectory jarg1_); + public final static native long MocoTrajectory_getAuxiliaryStateNames(long jarg1, MocoTrajectory jarg1_); public final static native long MocoTrajectory_getAccelerationNames(long jarg1, MocoTrajectory jarg1_); public final static native long MocoTrajectory_getDerivativeNamesWithoutAccelerations(long jarg1, MocoTrajectory jarg1_); public final static native long MocoTrajectory_getParameterNames(long jarg1, MocoTrajectory jarg1_); @@ -1157,6 +1161,8 @@ public class opensimMocoJNI { public final static native long MocoTrajectory_getDerivativesTrajectory(long jarg1, MocoTrajectory jarg1_); public final static native long MocoTrajectory_getValuesTrajectory(long jarg1, MocoTrajectory jarg1_); public final static native long MocoTrajectory_getSpeedsTrajectory(long jarg1, MocoTrajectory jarg1_); + public final static native long MocoTrajectory_getMultibodyStatesTrajectory(long jarg1, MocoTrajectory jarg1_); + public final static native long MocoTrajectory_getAuxiliaryStatesTrajectory(long jarg1, MocoTrajectory jarg1_); public final static native long MocoTrajectory_getAccelerationsTrajectory(long jarg1, MocoTrajectory jarg1_); public final static native long MocoTrajectory_getDerivativesWithoutAccelerationsTrajectory(long jarg1, MocoTrajectory jarg1_); public final static native long MocoTrajectory_getParameters(long jarg1, MocoTrajectory jarg1_); diff --git a/Gui/opensim/modeling/src/org/opensim/modeling/opensimSimulationJNI.java b/Gui/opensim/modeling/src/org/opensim/modeling/opensimSimulationJNI.java index 66107d9ee..ab9b2cd74 100644 --- a/Gui/opensim/modeling/src/org/opensim/modeling/opensimSimulationJNI.java +++ b/Gui/opensim/modeling/src/org/opensim/modeling/opensimSimulationJNI.java @@ -5343,6 +5343,9 @@ public class opensimSimulationJNI { public final static native long Model_updGravityForce(long jarg1, Model jarg1_); public final static native long Model_getForceSubsystem(long jarg1, Model jarg1_); public final static native long Model_updForceSubsystem(long jarg1, Model jarg1_); + public final static native long Model_getRigidBodyForces(long jarg1, Model jarg1_, long jarg2, State jarg2_); + public final static native long Model_getMobilityForces(long jarg1, Model jarg1_, long jarg2, State jarg2_); + public final static native long Model_getGravityBodyForces(long jarg1, Model jarg1_, long jarg2, State jarg2_); public final static native void Model_realizeTime(long jarg1, Model jarg1_, long jarg2, State jarg2_); public final static native void Model_realizePosition(long jarg1, Model jarg1_, long jarg2, State jarg2_); public final static native void Model_realizeVelocity(long jarg1, Model jarg1_, long jarg2, State jarg2_); diff --git a/opensim-visualizer b/opensim-visualizer index f2648aa0a..7d784527a 160000 --- a/opensim-visualizer +++ b/opensim-visualizer @@ -1 +1 @@ -Subproject commit f2648aa0a815d0a4f4afc1621ca620b13602f8f4 +Subproject commit 7d784527a25c48b71417608f280de40639119d23