<NME> RegisterTypes_osimSimulation.cpp
<BEF> /* -------------------------------------------------------------------------- *
 *                 OpenSim:  RegisterTypes_osimSimulation.cpp                 *
 * -------------------------------------------------------------------------- *
 * The OpenSim API is a toolkit for musculoskeletal modeling and simulation.  *
 * See http://opensim.stanford.edu and the NOTICE file for more information.  *
 * OpenSim is developed at Stanford University and supported by the US        *
 * National Institutes of Health (U54 GM072970, R24 HD065690) and by DARPA    *
 * through the Warrior Web program.                                           *
 *                                                                            *
 * Copyright (c) 2005-2017 Stanford University and the Authors                *
 * Author(s): Frank C. Anderson                                               *
 *                                                                            *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may    *
 * not use this file except in compliance with the License. You may obtain a  *
 * copy of the License at http://www.apache.org/licenses/LICENSE-2.0.         *
 *                                                                            *
 * Unless required by applicable law or agreed to in writing, software        *
 * distributed under the License is distributed on an "AS IS" BASIS,          *
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   *
 * See the License for the specific language governing permissions and        *
 * limitations under the License.                                             *
 * -------------------------------------------------------------------------- */


#include <OpenSim/Common/Object.h>
#include "RegisterTypes_osimSimulation.h"

#include "Model/Model.h"

#include "Model/Frame.h"
#include "Model/PhysicalFrame.h"
#include "Model/Ground.h"
#include "Model/OffsetFrame.h"
#include "Model/PhysicalOffsetFrame.h"

#include "Model/AnalysisSet.h"
#include "Model/ForceSet.h"
#include "Model/BodyScale.h"
#include "Model/BodyScaleSet.h"
#include "Model/BodySet.h"
#include "Model/ConstraintSet.h"
#include "Model/ContactGeometry.h"
#include "Model/ContactGeometrySet.h"
#include "Model/ContactHalfSpace.h"
#include "Model/ContactMesh.h"
#include "Model/ContactSphere.h"
#include "Model/CoordinateLimitForce.h"
#include "Model/CoordinateSet.h"
#include "Model/ElasticFoundationForce.h"
#include "Model/HuntCrossleyForce.h"
#include "Model/SmoothSphereHalfSpaceForce.h"
#include "Model/Ligament.h"
#include "Model/Blankevoort1991Ligament.h"
#include "Model/JointSet.h"
#include "Model/Marker.h"
#include "Model/Station.h"
#include "Model/MarkerSet.h"
#include "Model/PathPoint.h"
#include "Model/PathPointSet.h"
#include "Model/ConditionalPathPoint.h"
#include "Model/MovingPathPoint.h"
#include "Model/GeometryPath.h"
#include "Model/PrescribedForce.h"
#include "Model/ExternalForce.h"
#include "Model/PointToPointSpring.h"
#include "Model/ExpressionBasedPointToPointForce.h"
#include "Model/PathSpring.h"
#include "Model/BushingForce.h"
#include "Model/FunctionBasedBushingForce.h"
#include "Model/ExpressionBasedBushingForce.h"
#include "Model/ExternalLoads.h"
#include "Model/PathActuator.h"
#include "Model/ProbeSet.h"
#include "Model/ActuatorPowerProbe.h"
#include "Model/ActuatorForceProbe.h"
#include "Model/JointInternalPowerProbe.h"
#include "Model/SystemEnergyProbe.h"
#include "Model/Umberger2010MuscleMetabolicsProbe.h"
#include "Model/Bhargava2004MuscleMetabolicsProbe.h"
#include "Model/Bhargava2004SmoothedMuscleMetabolics.h"
#include "Model/Appearance.h"
#include "Model/Geometry.h"

#include "Model/ModelVisualPreferences.h"
#include "Model/ExpressionBasedCoordinateForce.h"

#include "Control/ControlSet.h"
#include "Control/ControlSetController.h"
#include "Control/ControlConstant.h"
#include "Control/ControlLinear.h"
#include "Control/PrescribedController.h"

#include "Wrap/PathWrap.h"
#include "Wrap/PathWrapSet.h"
#include "Wrap/WrapCylinder.h"
#include "Wrap/WrapEllipsoid.h"
#include "Wrap/WrapSphere.h"
#include "Wrap/WrapTorus.h"
#include "Wrap/WrapObjectSet.h"
#include "Wrap/WrapCylinderObst.h"
#include "Wrap/WrapSphereObst.h"
#include "Wrap/WrapDoubleCylinderObst.h"

#include "SimbodyEngine/SimbodyEngine.h"
#include "SimbodyEngine/Body.h"
#include "SimbodyEngine/Constraint.h"
#include "SimbodyEngine/WeldConstraint.h"
#include "SimbodyEngine/PointConstraint.h"
#include "SimbodyEngine/ConstantDistanceConstraint.h"
#include "SimbodyEngine/CoordinateCouplerConstraint.h"
#include "SimbodyEngine/PointOnLineConstraint.h"
#include "SimbodyEngine/RollingOnSurfaceConstraint.h"

#include "SimbodyEngine/EllipsoidJoint.h"
#include "SimbodyEngine/BallJoint.h"
#include "SimbodyEngine/GimbalJoint.h"
#include "SimbodyEngine/UniversalJoint.h"
#include "SimbodyEngine/PinJoint.h"
#include "SimbodyEngine/SliderJoint.h"
#include "SimbodyEngine/PlanarJoint.h"
#include "SimbodyEngine/FreeJoint.h"
#include "SimbodyEngine/CustomJoint.h"
#include "SimbodyEngine/WeldJoint.h"
#include "SimbodyEngine/ScapulothoracicJoint.h"
#include "SimbodyEngine/TransformAxis.h"
#include "SimbodyEngine/Coordinate.h"
#include "SimbodyEngine/SpatialTransform.h"
#include "OpenSense/IMUPlacer.h"
#include "OpenSense/IMU.h"
#include "OrientationsReference.h"
#include "StatesTrajectoryReporter.h"
#include "TableProcessor.h"
#include "MarkersReference.h"
#include "PositionMotion.h"

#include <string>
#include <iostream>
#include <exception>

using namespace std;
using namespace OpenSim;

static osimSimulationInstantiator instantiator; 

//_____________________________________________________________________________
/**
 * The purpose of this routine is to register all class types exported by
 * the osimSimulation library.
 */
OSIMSIMULATION_API void RegisterTypes_osimSimulation()
{
  try {

    Object::registerType( AnalysisSet() );
    Object::registerType( Model() );
    Object::registerType( BodyScale() );
    Object::registerType( BodyScaleSet());
    Object::registerType( BodySet());
    Object::registerType( ComponentSet() );
    Object::registerType( ControllerSet() );
    Object::registerType( ConstraintSet() );
    Object::registerType( CoordinateSet() );
    Object::registerType( ForceSet() );
    Object::registerType( ExternalLoads() );

    Object::registerType( JointSet() );
    Object::registerType( Marker() );
    Object::registerType( Station() );
    Object::registerType( MarkerSet() );
    Object::registerType( PathPoint() );
    Object::registerType( PathPointSet() );
    Object::registerType( ConditionalPathPoint() );
    Object::registerType( MovingPathPoint() );
    Object::registerType( SurfaceProperties());
    Object::registerType( Appearance());
    Object::registerType( ModelVisualPreferences());

    Object::registerType(MarkersReference());
    Object::registerType(MarkerWeight());
    Object::registerType(Set<MarkerWeight>());


    Object::registerType( Brick());
    Object::registerType( Sphere());
    Object::registerType( Cylinder());
    Object::registerType( Ellipsoid());
    Object::registerType( Mesh());
    Object::registerType( Torus());
    Object::registerType( Cone());
    Object::registerType( LineGeometry());
    Object::registerType( FrameGeometry());
    Object::registerType( Arrow());
    Object::registerType( GeometryPath());

    Object::registerType( ControlSet() );
    Object::registerType( ControlConstant() );

    // CURRENT RELEASE
    Object::registerType( SimbodyEngine() );
    Object::registerType( OpenSim::Body() );
    Object::registerType(OpenSim::Ground());
    Object::registerType( PhysicalOffsetFrame());
    Object::registerType( WrapSphere() );
    Object::registerType( WrapTorus() );
    Object::registerType( WrapObjectSet() );
    Object::registerType( WrapCylinderObst() );
    Object::registerType( WrapSphereObst() );
    Object::registerType( WrapDoubleCylinderObst() );

    // CURRENT RELEASE
    Object::registerType( SimbodyEngine() );
    Object::registerType( OpenSim::Body() );
    Object::registerType( OpenSim::Ground());
    Object::registerType( PhysicalOffsetFrame());

    Object::registerType( WeldJoint());
    Object::registerType( CustomJoint());
    Object::registerType( EllipsoidJoint() );
    Object::registerType( FreeJoint() );
    Object::registerType( BallJoint() );
    Object::registerType( GimbalJoint() );
    Object::registerType( ScapulothoracicJoint() );
    Object::registerType( UniversalJoint() );
    Object::registerType( PinJoint() );
    Object::registerType( SliderJoint() );
    Object::registerType( PlanarJoint() );
    Object::registerType( TransformAxis() );
    Object::registerType( Coordinate() );
    Object::registerType( SpatialTransform() );

    Object::registerType(WeldConstraint());
    Object::registerType(PointConstraint());
    Object::registerType(ConstantDistanceConstraint());
    Object::registerType(CoordinateCouplerConstraint());
    Object::registerType(PointOnLineConstraint());
    Object::registerType(RollingOnSurfaceConstraint());

    Object::registerType( ContactGeometrySet() );
    Object::registerType( ContactHalfSpace() );
    Object::registerType( ContactMesh() );
    Object::registerType( ContactSphere() );
    Object::registerType( CoordinateLimitForce() );
    Object::registerType( SmoothSphereHalfSpaceForce() );
    Object::registerType( HuntCrossleyForce() );
    Object::registerType( ElasticFoundationForce() );
    Object::registerType( HuntCrossleyForce::ContactParameters() );
    Object::registerType( HuntCrossleyForce::ContactParametersSet() );
    Object::registerType( ElasticFoundationForce::ContactParameters() );
    Object::registerType( ElasticFoundationForce::ContactParametersSet() );

    Object::registerType( Ligament() );
    Object::registerType( Blankevoort1991Ligament() );
    Object::registerType( PrescribedForce() );
    Object::registerType( ExternalForce() );
    Object::registerType( PointToPointSpring() );
    Object::registerType( ExpressionBasedPointToPointForce() );
    Object::registerType( PathSpring() );
    Object::registerType( BushingForce() );
    Object::registerType( FunctionBasedBushingForce() );
    Object::registerType( ExpressionBasedBushingForce() );
    Object::registerType( ExpressionBasedCoordinateForce() );

    Object::registerType( ControlSetController() );
    Object::registerType( PrescribedController() );

    Object::registerType( PathActuator() );
    Object::registerType( ProbeSet() );
    Object::registerType( JointInternalPowerProbe() );
    Object::registerType( SystemEnergyProbe() );
    Object::registerType( ActuatorForceProbe() );
    Object::registerType( ActuatorPowerProbe() );
    Object::registerType( Umberger2010MuscleMetabolicsProbe() );
    Object::registerType( Umberger2010MuscleMetabolicsProbe_MetabolicMuscleParameterSet() );
    Object::registerType( Umberger2010MuscleMetabolicsProbe_MetabolicMuscleParameter() );
    Object::registerType( Bhargava2004MuscleMetabolicsProbe() );
    Object::registerType( Bhargava2004MuscleMetabolicsProbe_MetabolicMuscleParameterSet() );
    Object::registerType( Bhargava2004MuscleMetabolicsProbe_MetabolicMuscleParameter() );
    Object::registerType( Bhargava2004SmoothedMuscleMetabolics());
    Object::registerType( Bhargava2004SmoothedMuscleMetabolics_MuscleParameters() );
    Object::registerType( OrientationWeight() );

    Object::registerType( IMUPlacer() );
    Object::registerType( IMU() );
    Object::registerType( StatesTrajectoryReporter() );

    Object::registerType( TableProcessor() );

    Object::registerType( TabOpLowPassFilter() );
    Object::registerType( TabOpUseAbsoluteStateNames() );
    Object::registerType( PositionMotion() );

    // OLD Versions
    // Associate an instance with old name to help deserialization.
    // This has to be done after the new Type is registered.
    Object::renameType("ActuatorSet",       "ForceSet");
    Object::renameType("MuscleWrap",        "PathWrap");
    Object::renameType("MuscleWrapSet",     "PathWrapSet");
    Object::renameType("MusclePoint",       "PathPoint");
    Object::renameType("MuscleViaPoint",    "ConditionalPathPoint");
    Object::renameType("MovingMusclePoint", "MovingPathPoint");
    Object::renameType("MusclePointSet",    "PathPointSet");

    Object::renameType("MuscleMetabolicPowerProbeUmberger2010",  
        "Umberger2010MuscleMetabolicsProbe");

    Object::renameType("MuscleMetabolicPowerProbeUmberger2010_MetabolicMuscleParameter",  
        "Umberger2010MuscleMetabolicsProbe_MetabolicMuscleParameter");

    Object::renameType("MuscleMetabolicPowerProbeUmberger2010_MetabolicMuscleParameterSet",  
        "Umberger2010MuscleMetabolicsProbe_MetabolicMuscleParameterSet");

  } catch (const std::exception& e) {
    std::cerr 
        << "ERROR during osimSimulation Object registration:\n"
        << e.what() << "\n";
  }
}


osimSimulationInstantiator::osimSimulationInstantiator() 
{ 
        registerDllClasses(); 
} 
    
void osimSimulationInstantiator::registerDllClasses() 
{ 
        RegisterTypes_osimSimulation(); 
} 
    

<MSG> Formatting.

Conflicts:
	OpenSim/Simulation/RegisterTypes_osimSimulation.cpp

<DFF> @@ -197,6 +197,7 @@ OSIMSIMULATION_API void RegisterTypes_osimSimulation()
 
     // CURRENT RELEASE
     Object::registerType( SimbodyEngine() );
+    Object::registerType( PhysicalFrame());
     Object::registerType( OpenSim::Body() );
     Object::registerType(OpenSim::Ground());
     Object::registerType( PhysicalOffsetFrame());

{'commit': 'diff --git a/OpenSim/Simulation/RegisterTypes_osimSimulation.cpp b/OpenSim/Simulation/RegisterTypes_osimSimulation.cpp\nindex 12adadf65..5c39ee86a 100644\n--- a/OpenSim/Simulation/RegisterTypes_osimSimulation.cpp\n+++ b/OpenSim/Simulation/RegisterTypes_osimSimulation.cpp\n@@ -197,6 +197,7 @@ OSIMSIMULATION_API void RegisterTypes_osimSimulation()\n \n     // CURRENT RELEASE\n     Object::registerType( SimbodyEngine() );\n+    Object::registerType( PhysicalFrame());\n     Object::registerType( OpenSim::Body() );\n     Object::registerType(OpenSim::Ground());\n     Object::registerType( PhysicalOffsetFrame());\n', 'commit_subject': 'Formatting.', 'repo_name': 'opensim-org/opensim-core', 'committer': {'name': 'Ayman Habib', 'email': '8ed3d36c15b09fc26f15c5d6263fa800d475ac16@stanford.edu', 'time_sec': '1429568432', 'tz_offset': '-420', 'date': {'seconds': '1429568432'}}, 'commit_tree': 'ef0ff8cd31c80fec1ae638bb442e962ce8814a44', 'commit_message': 'Formatting.\n\nConflicts:\n\tOpenSim/Simulation/RegisterTypes_osimSimulation.cpp\n', 'language_name': 'Shell', 'license': 'apache-2.0', 'hunks': '@@ -197,6 +197,7 @@ OSIMSIMULATION_API void RegisterTypes_osimSimulation()\n \n     // CURRENT RELEASE\n     Object::registerType( SimbodyEngine() );\n+    Object::registerType( PhysicalFrame());\n     Object::registerType( OpenSim::Body() );\n     Object::registerType(OpenSim::Ground());\n     Object::registerType( PhysicalOffsetFrame());\n', 'addition_count': 1, 'deletion_count': 0, 'src_file': 'a/OpenSim/Simulation/RegisterTypes_osimSimulation.cpp', 'tgt_file': 'b/OpenSim/Simulation/RegisterTypes_osimSimulation.cpp', 'file_extension': '.cpp', 'before_file': '/* -------------------------------------------------------------------------- *\n *                 OpenSim:  RegisterTypes_osimSimulation.cpp                 *\n * -------------------------------------------------------------------------- *\n * The OpenSim API is a toolkit for musculoskeletal modeling and simulation.  *\n * See http://opensim.stanford.edu and the NOTICE file for more information.  *\n * OpenSim is developed at Stanford University and supported by the US        *\n * National Institutes of Health (U54 GM072970, R24 HD065690) and by DARPA    *\n * through the Warrior Web program.                                           *\n *                                                                            *\n * Copyright (c) 2005-2017 Stanford University and the Authors                *\n * Author(s): Frank C. Anderson                                               *\n *                                                                            *\n * Licensed under the Apache License, Version 2.0 (the "License"); you may    *\n * not use this file except in compliance with the License. You may obtain a  *\n * copy of the License at http://www.apache.org/licenses/LICENSE-2.0.         *\n *                                                                            *\n * Unless required by applicable law or agreed to in writing, software        *\n * distributed under the License is distributed on an "AS IS" BASIS,          *\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   *\n * See the License for the specific language governing permissions and        *\n * limitations under the License.                                             *\n * -------------------------------------------------------------------------- */\n\n\n#include <OpenSim/Common/Object.h>\n#include "RegisterTypes_osimSimulation.h"\n\n#include "Model/Model.h"\n\n#include "Model/Frame.h"\n#include "Model/PhysicalFrame.h"\n#include "Model/Ground.h"\n#include "Model/OffsetFrame.h"\n#include "Model/PhysicalOffsetFrame.h"\n\n#include "Model/AnalysisSet.h"\n#include "Model/ForceSet.h"\n#include "Model/BodyScale.h"\n#include "Model/BodyScaleSet.h"\n#include "Model/BodySet.h"\n#include "Model/ConstraintSet.h"\n#include "Model/ContactGeometry.h"\n#include "Model/ContactGeometrySet.h"\n#include "Model/ContactHalfSpace.h"\n#include "Model/ContactMesh.h"\n#include "Model/ContactSphere.h"\n#include "Model/CoordinateLimitForce.h"\n#include "Model/CoordinateSet.h"\n#include "Model/ElasticFoundationForce.h"\n#include "Model/HuntCrossleyForce.h"\n#include "Model/SmoothSphereHalfSpaceForce.h"\n#include "Model/Ligament.h"\n#include "Model/Blankevoort1991Ligament.h"\n#include "Model/JointSet.h"\n#include "Model/Marker.h"\n#include "Model/Station.h"\n#include "Model/MarkerSet.h"\n#include "Model/PathPoint.h"\n#include "Model/PathPointSet.h"\n#include "Model/ConditionalPathPoint.h"\n#include "Model/MovingPathPoint.h"\n#include "Model/GeometryPath.h"\n#include "Model/PrescribedForce.h"\n#include "Model/ExternalForce.h"\n#include "Model/PointToPointSpring.h"\n#include "Model/ExpressionBasedPointToPointForce.h"\n#include "Model/PathSpring.h"\n#include "Model/BushingForce.h"\n#include "Model/FunctionBasedBushingForce.h"\n#include "Model/ExpressionBasedBushingForce.h"\n#include "Model/ExternalLoads.h"\n#include "Model/PathActuator.h"\n#include "Model/ProbeSet.h"\n#include "Model/ActuatorPowerProbe.h"\n#include "Model/ActuatorForceProbe.h"\n#include "Model/JointInternalPowerProbe.h"\n#include "Model/SystemEnergyProbe.h"\n#include "Model/Umberger2010MuscleMetabolicsProbe.h"\n#include "Model/Bhargava2004MuscleMetabolicsProbe.h"\n#include "Model/Bhargava2004SmoothedMuscleMetabolics.h"\n#include "Model/Appearance.h"\n#include "Model/Geometry.h"\n\n#include "Model/ModelVisualPreferences.h"\n#include "Model/ExpressionBasedCoordinateForce.h"\n\n#include "Control/ControlSet.h"\n#include "Control/ControlSetController.h"\n#include "Control/ControlConstant.h"\n#include "Control/ControlLinear.h"\n#include "Control/PrescribedController.h"\n\n#include "Wrap/PathWrap.h"\n#include "Wrap/PathWrapSet.h"\n#include "Wrap/WrapCylinder.h"\n#include "Wrap/WrapEllipsoid.h"\n#include "Wrap/WrapSphere.h"\n#include "Wrap/WrapTorus.h"\n#include "Wrap/WrapObjectSet.h"\n#include "Wrap/WrapCylinderObst.h"\n#include "Wrap/WrapSphereObst.h"\n#include "Wrap/WrapDoubleCylinderObst.h"\n\n#include "SimbodyEngine/SimbodyEngine.h"\n#include "SimbodyEngine/Body.h"\n#include "SimbodyEngine/Constraint.h"\n#include "SimbodyEngine/WeldConstraint.h"\n#include "SimbodyEngine/PointConstraint.h"\n#include "SimbodyEngine/ConstantDistanceConstraint.h"\n#include "SimbodyEngine/CoordinateCouplerConstraint.h"\n#include "SimbodyEngine/PointOnLineConstraint.h"\n#include "SimbodyEngine/RollingOnSurfaceConstraint.h"\n\n#include "SimbodyEngine/EllipsoidJoint.h"\n#include "SimbodyEngine/BallJoint.h"\n#include "SimbodyEngine/GimbalJoint.h"\n#include "SimbodyEngine/UniversalJoint.h"\n#include "SimbodyEngine/PinJoint.h"\n#include "SimbodyEngine/SliderJoint.h"\n#include "SimbodyEngine/PlanarJoint.h"\n#include "SimbodyEngine/FreeJoint.h"\n#include "SimbodyEngine/CustomJoint.h"\n#include "SimbodyEngine/WeldJoint.h"\n#include "SimbodyEngine/ScapulothoracicJoint.h"\n#include "SimbodyEngine/TransformAxis.h"\n#include "SimbodyEngine/Coordinate.h"\n#include "SimbodyEngine/SpatialTransform.h"\n#include "OpenSense/IMUPlacer.h"\n#include "OpenSense/IMU.h"\n#include "OrientationsReference.h"\n#include "StatesTrajectoryReporter.h"\n#include "TableProcessor.h"\n#include "MarkersReference.h"\n#include "PositionMotion.h"\n\n#include <string>\n#include <iostream>\n#include <exception>\n\nusing namespace std;\nusing namespace OpenSim;\n\nstatic osimSimulationInstantiator instantiator; \n\n//_____________________________________________________________________________\n/**\n * The purpose of this routine is to register all class types exported by\n * the osimSimulation library.\n */\nOSIMSIMULATION_API void RegisterTypes_osimSimulation()\n{\n  try {\n\n    Object::registerType( AnalysisSet() );\n    Object::registerType( Model() );\n    Object::registerType( BodyScale() );\n    Object::registerType( BodyScaleSet());\n    Object::registerType( BodySet());\n    Object::registerType( ComponentSet() );\n    Object::registerType( ControllerSet() );\n    Object::registerType( ConstraintSet() );\n    Object::registerType( CoordinateSet() );\n    Object::registerType( ForceSet() );\n    Object::registerType( ExternalLoads() );\n\n    Object::registerType( JointSet() );\n    Object::registerType( Marker() );\n    Object::registerType( Station() );\n    Object::registerType( MarkerSet() );\n    Object::registerType( PathPoint() );\n    Object::registerType( PathPointSet() );\n    Object::registerType( ConditionalPathPoint() );\n    Object::registerType( MovingPathPoint() );\n    Object::registerType( SurfaceProperties());\n    Object::registerType( Appearance());\n    Object::registerType( ModelVisualPreferences());\n\n    Object::registerType(MarkersReference());\n    Object::registerType(MarkerWeight());\n    Object::registerType(Set<MarkerWeight>());\n\n\n    Object::registerType( Brick());\n    Object::registerType( Sphere());\n    Object::registerType( Cylinder());\n    Object::registerType( Ellipsoid());\n    Object::registerType( Mesh());\n    Object::registerType( Torus());\n    Object::registerType( Cone());\n    Object::registerType( LineGeometry());\n    Object::registerType( FrameGeometry());\n    Object::registerType( Arrow());\n    Object::registerType( GeometryPath());\n\n    Object::registerType( ControlSet() );\n    Object::registerType( ControlConstant() );\n\n    // CURRENT RELEASE\n    Object::registerType( SimbodyEngine() );\n    Object::registerType( OpenSim::Body() );\n    Object::registerType(OpenSim::Ground());\n    Object::registerType( PhysicalOffsetFrame());\n    Object::registerType( WrapSphere() );\n    Object::registerType( WrapTorus() );\n    Object::registerType( WrapObjectSet() );\n    Object::registerType( WrapCylinderObst() );\n    Object::registerType( WrapSphereObst() );\n    Object::registerType( WrapDoubleCylinderObst() );\n\n    // CURRENT RELEASE\n    Object::registerType( SimbodyEngine() );\n    Object::registerType( OpenSim::Body() );\n    Object::registerType( OpenSim::Ground());\n    Object::registerType( PhysicalOffsetFrame());\n\n    Object::registerType( WeldJoint());\n    Object::registerType( CustomJoint());\n    Object::registerType( EllipsoidJoint() );\n    Object::registerType( FreeJoint() );\n    Object::registerType( BallJoint() );\n    Object::registerType( GimbalJoint() );\n    Object::registerType( ScapulothoracicJoint() );\n    Object::registerType( UniversalJoint() );\n    Object::registerType( PinJoint() );\n    Object::registerType( SliderJoint() );\n    Object::registerType( PlanarJoint() );\n    Object::registerType( TransformAxis() );\n    Object::registerType( Coordinate() );\n    Object::registerType( SpatialTransform() );\n\n    Object::registerType(WeldConstraint());\n    Object::registerType(PointConstraint());\n    Object::registerType(ConstantDistanceConstraint());\n    Object::registerType(CoordinateCouplerConstraint());\n    Object::registerType(PointOnLineConstraint());\n    Object::registerType(RollingOnSurfaceConstraint());\n\n    Object::registerType( ContactGeometrySet() );\n    Object::registerType( ContactHalfSpace() );\n    Object::registerType( ContactMesh() );\n    Object::registerType( ContactSphere() );\n    Object::registerType( CoordinateLimitForce() );\n    Object::registerType( SmoothSphereHalfSpaceForce() );\n    Object::registerType( HuntCrossleyForce() );\n    Object::registerType( ElasticFoundationForce() );\n    Object::registerType( HuntCrossleyForce::ContactParameters() );\n    Object::registerType( HuntCrossleyForce::ContactParametersSet() );\n    Object::registerType( ElasticFoundationForce::ContactParameters() );\n    Object::registerType( ElasticFoundationForce::ContactParametersSet() );\n\n    Object::registerType( Ligament() );\n    Object::registerType( Blankevoort1991Ligament() );\n    Object::registerType( PrescribedForce() );\n    Object::registerType( ExternalForce() );\n    Object::registerType( PointToPointSpring() );\n    Object::registerType( ExpressionBasedPointToPointForce() );\n    Object::registerType( PathSpring() );\n    Object::registerType( BushingForce() );\n    Object::registerType( FunctionBasedBushingForce() );\n    Object::registerType( ExpressionBasedBushingForce() );\n    Object::registerType( ExpressionBasedCoordinateForce() );\n\n    Object::registerType( ControlSetController() );\n    Object::registerType( PrescribedController() );\n\n    Object::registerType( PathActuator() );\n    Object::registerType( ProbeSet() );\n    Object::registerType( JointInternalPowerProbe() );\n    Object::registerType( SystemEnergyProbe() );\n    Object::registerType( ActuatorForceProbe() );\n    Object::registerType( ActuatorPowerProbe() );\n    Object::registerType( Umberger2010MuscleMetabolicsProbe() );\n    Object::registerType( Umberger2010MuscleMetabolicsProbe_MetabolicMuscleParameterSet() );\n    Object::registerType( Umberger2010MuscleMetabolicsProbe_MetabolicMuscleParameter() );\n    Object::registerType( Bhargava2004MuscleMetabolicsProbe() );\n    Object::registerType( Bhargava2004MuscleMetabolicsProbe_MetabolicMuscleParameterSet() );\n    Object::registerType( Bhargava2004MuscleMetabolicsProbe_MetabolicMuscleParameter() );\n    Object::registerType( Bhargava2004SmoothedMuscleMetabolics());\n    Object::registerType( Bhargava2004SmoothedMuscleMetabolics_MuscleParameters() );\n    Object::registerType( OrientationWeight() );\n\n    Object::registerType( IMUPlacer() );\n    Object::registerType( IMU() );\n    Object::registerType( StatesTrajectoryReporter() );\n\n    Object::registerType( TableProcessor() );\n\n    Object::registerType( TabOpLowPassFilter() );\n    Object::registerType( TabOpUseAbsoluteStateNames() );\n    Object::registerType( PositionMotion() );\n\n    // OLD Versions\n    // Associate an instance with old name to help deserialization.\n    // This has to be done after the new Type is registered.\n    Object::renameType("ActuatorSet",       "ForceSet");\n    Object::renameType("MuscleWrap",        "PathWrap");\n    Object::renameType("MuscleWrapSet",     "PathWrapSet");\n    Object::renameType("MusclePoint",       "PathPoint");\n    Object::renameType("MuscleViaPoint",    "ConditionalPathPoint");\n    Object::renameType("MovingMusclePoint", "MovingPathPoint");\n    Object::renameType("MusclePointSet",    "PathPointSet");\n\n    Object::renameType("MuscleMetabolicPowerProbeUmberger2010",  \n        "Umberger2010MuscleMetabolicsProbe");\n\n    Object::renameType("MuscleMetabolicPowerProbeUmberger2010_MetabolicMuscleParameter",  \n        "Umberger2010MuscleMetabolicsProbe_MetabolicMuscleParameter");\n\n    Object::renameType("MuscleMetabolicPowerProbeUmberger2010_MetabolicMuscleParameterSet",  \n        "Umberger2010MuscleMetabolicsProbe_MetabolicMuscleParameterSet");\n\n  } catch (const std::exception& e) {\n    std::cerr \n        << "ERROR during osimSimulation Object registration:\\n"\n        << e.what() << "\\n";\n  }\n}\n\n\nosimSimulationInstantiator::osimSimulationInstantiator() \n{ \n        registerDllClasses(); \n} \n    \nvoid osimSimulationInstantiator::registerDllClasses() \n{ \n        RegisterTypes_osimSimulation(); \n} \n    \n', 'message': 'Formatting.\n\nConflicts:\n\tOpenSim/Simulation/RegisterTypes_osimSimulation.cpp\n', 'author_name': 'Ayman Habib', 'lang': 'cpp'}