diff --git a/Base/SceneElements/Objects/imstkCollidingObject.h b/Base/SceneElements/Objects/imstkCollidingObject.h index c097f672c7dfc34f409e18ccac0b1756635232d9..1c35ba64e446f43221f8c64b16fc525ff46ca469 100644 --- a/Base/SceneElements/Objects/imstkCollidingObject.h +++ b/Base/SceneElements/Objects/imstkCollidingObject.h @@ -37,7 +37,7 @@ public: CollidingObject(std::string name) : SceneObject(name) { - m_type = Type::Static; + m_type = SceneObject::Type::Static; } ~CollidingObject() = default; diff --git a/Base/Scene/Object/imstkDeformableBodyModel.h b/Base/SceneElements/Objects/imstkDeformableBodyModel.h similarity index 100% rename from Base/Scene/Object/imstkDeformableBodyModel.h rename to Base/SceneElements/Objects/imstkDeformableBodyModel.h diff --git a/Base/SceneElements/Objects/imstkDeformableObject.h b/Base/SceneElements/Objects/imstkDeformableObject.h index 91859183f763f7d3e294a3fa066fe87466fef012..65ed828d2677af74b0851405f5883fa8d9d1ec5a 100644 --- a/Base/SceneElements/Objects/imstkDeformableObject.h +++ b/Base/SceneElements/Objects/imstkDeformableObject.h @@ -27,7 +27,7 @@ #include "imstkDynamicObject.h" #include "imstkDynamicalModel.h" -#include "imstkTimeIntegrator.h" +//#include "imstkTimeIntegrator.h" #include "imstkKinematicState.h" #include "imstkMath.h" @@ -48,7 +48,7 @@ public: /// DeformableObject(std::string name) : DynamicObject(name) { - m_type = SceneObjectType::Deformable; + m_type = SceneObject::Type::Deformable; } /// @@ -86,7 +86,7 @@ public: /// /// \brief Set the integration scheme used to solve the ODE system. /// - void setTimeIntegrator(TimeIntegratorType integrator); + //void setTimeIntegrator(TimeIntegrator::Type integrator); protected: diff --git a/Base/Scene/Object/imstkDynamicObject.cpp b/Base/SceneElements/Objects/imstkDynamicObject.cpp similarity index 100% rename from Base/Scene/Object/imstkDynamicObject.cpp rename to Base/SceneElements/Objects/imstkDynamicObject.cpp diff --git a/Base/Scene/Object/imstkDynamicObject.h b/Base/SceneElements/Objects/imstkDynamicObject.h similarity index 100% rename from Base/Scene/Object/imstkDynamicObject.h rename to Base/SceneElements/Objects/imstkDynamicObject.h diff --git a/Base/Scene/Object/imstkDynamicalModel.h b/Base/SceneElements/Objects/imstkDynamicalModel.h similarity index 100% rename from Base/Scene/Object/imstkDynamicalModel.h rename to Base/SceneElements/Objects/imstkDynamicalModel.h diff --git a/Base/Scene/Object/imstkKinematicState.cpp b/Base/SceneElements/Objects/imstkKinematicState.cpp similarity index 89% rename from Base/Scene/Object/imstkKinematicState.cpp rename to Base/SceneElements/Objects/imstkKinematicState.cpp index 936d6155cb8c482237a7308f54a64e21a3bb3a12..5de40887708eeb3fd6304b9b8938343f0eccb84a 100644 --- a/Base/Scene/Object/imstkKinematicState.cpp +++ b/Base/SceneElements/Objects/imstkKinematicState.cpp @@ -24,10 +24,4 @@ namespace imstk { -KinematicState::KinematicState(const T& u, const T& v) -{ - m_displacement = u; - m_velocity = v; -} - } diff --git a/Base/Scene/Object/imstkKinematicState.h b/Base/SceneElements/Objects/imstkKinematicState.h similarity index 100% rename from Base/Scene/Object/imstkKinematicState.h rename to Base/SceneElements/Objects/imstkKinematicState.h diff --git a/Base/Scene/Object/imstkRigidObject.cpp b/Base/SceneElements/Objects/imstkRigidObject.cpp similarity index 100% rename from Base/Scene/Object/imstkRigidObject.cpp rename to Base/SceneElements/Objects/imstkRigidObject.cpp diff --git a/Base/Scene/Object/imstkRigidObject.h b/Base/SceneElements/Objects/imstkRigidObject.h similarity index 100% rename from Base/Scene/Object/imstkRigidObject.h rename to Base/SceneElements/Objects/imstkRigidObject.h diff --git a/Base/SceneElements/Objects/imstkSceneObject.cpp b/Base/SceneElements/Objects/imstkSceneObject.cpp index 5d19c22cc9905cf512d34188787c7973626d08e1..d334cbe132eaf8ce0cf30a7df192ef40438a20c8 100644 --- a/Base/SceneElements/Objects/imstkSceneObject.cpp +++ b/Base/SceneElements/Objects/imstkSceneObject.cpp @@ -36,14 +36,14 @@ SceneObject::setVisualGeometry(std::shared_ptr<Geometry> geometry) m_visualGeometry = geometry; } -const SceneObjectType& +const SceneObject::Type& SceneObject::getType() const { return m_type; } void -SceneObject::setType(SceneObjectType type) +SceneObject::setType(SceneObject::Type type) { m_type = type; } diff --git a/Base/SceneElements/Objects/imstkSceneObject.h b/Base/SceneElements/Objects/imstkSceneObject.h index 4fbb4a2b7c874ca5ed299e98a47034c2bdf47440..f5d2b4f4be7e35c9553bfa0c9c294d8e2d59dda3 100644 --- a/Base/SceneElements/Objects/imstkSceneObject.h +++ b/Base/SceneElements/Objects/imstkSceneObject.h @@ -30,15 +30,6 @@ namespace imstk { -enum class SceneObjectType -{ - Static, - Dynamic, - Rigid, - Deformable, - VirtualTool, -}; - //class Geometry; //class GeometryMap; @@ -51,6 +42,14 @@ enum class SceneObjectType class SceneObject { public: + enum class Type + { + Static, + Dynamic, + Rigid, + Deformable, + VirtualCoupling + }; /// /// \brief Constructor @@ -65,7 +64,7 @@ public: /// /// \brief Get the type of the object /// - const SceneObjectType& getType() const; + const Type& getType() const; /// /// \brief Get/Set the custom name of the scene object @@ -95,9 +94,9 @@ protected: /// /// \brief Assigns the type of the object /// - void setType(SceneObjectType type); + void setType(Type type); - SceneObjectType m_type = SceneObjectType::Static; ///> Type of the scene object + Type m_type = Type::Static; ///> Type of the scene object std::string m_name; ///> Custom name of the scene object std::shared_ptr<Geometry> m_visualGeometry; ///> Geometry for rendering diff --git a/Base/SimulationManager/imstkSceneManager.cpp b/Base/SimulationManager/imstkSceneManager.cpp index 8d87e2685ba3259e43f4599e96b64bdc4d68b7ca..d402e0f37b0c3b38700308b51081061fd18a5553 100644 --- a/Base/SimulationManager/imstkSceneManager.cpp +++ b/Base/SimulationManager/imstkSceneManager.cpp @@ -22,7 +22,7 @@ #include "imstkSceneManager.h" #include "imstkCameraController.h" -#include "imstkVirtualToolObject.h" +#include "imstkVirtualCouplingObject.h" #include "g3log/g3log.hpp" @@ -46,7 +46,7 @@ SceneManager::initModule() // Init virtual coupling objects offsets for (auto obj : m_scene->getSceneObjects()) { - if (auto virtualCoupling = std::dynamic_pointer_cast<VirtualToolObject>(obj)) + if (auto virtualCoupling = std::dynamic_pointer_cast<VirtualCouplingObject>(obj)) { virtualCoupling->initOffsets(); } @@ -66,7 +66,7 @@ SceneManager::runModule() // Update virtualCoupling objects based on devices for (auto obj : m_scene->getSceneObjects()) { - if (auto virtualCoupling = std::dynamic_pointer_cast<VirtualToolObject>(obj)) + if (auto virtualCoupling = std::dynamic_pointer_cast<VirtualCouplingObject>(obj)) { virtualCoupling->updateFromDevice(); virtualCoupling->applyForces(); diff --git a/Base/Solvers/CMakeLists.txt b/Base/Solvers/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..996abd97b496e7d9f7bc0ae59f93fea8ec307cf0 --- /dev/null +++ b/Base/Solvers/CMakeLists.txt @@ -0,0 +1,15 @@ +#----------------------------------------------------------------------------- +# Create target +#----------------------------------------------------------------------------- +include(imstkAddLibrary) +imstk_add_library( Solvers + DEPENDS + Core + ) + +#----------------------------------------------------------------------------- +# Testing +#----------------------------------------------------------------------------- +if( iMSTK_BUILD_TESTING ) + add_subdirectory( Testing ) +endif() diff --git a/Base/TimeIntegrators/CMakeLists.txt b/Base/TimeIntegrators/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..718b49a2fdb2602548dcb3bb3b2f55438da89544 --- /dev/null +++ b/Base/TimeIntegrators/CMakeLists.txt @@ -0,0 +1,15 @@ +#----------------------------------------------------------------------------- +# Create target +#----------------------------------------------------------------------------- +include(imstkAddLibrary) +imstk_add_library( TimeIntegrators + DEPENDS + Core + ) + +#----------------------------------------------------------------------------- +# Testing +#----------------------------------------------------------------------------- +if( iMSTK_BUILD_TESTING ) + add_subdirectory( Testing ) +endif() diff --git a/Base/Scene/Object/imstkTimeIntegrator.cpp b/Base/TimeIntegrators/imstkTimeIntegrator.cpp similarity index 100% rename from Base/Scene/Object/imstkTimeIntegrator.cpp rename to Base/TimeIntegrators/imstkTimeIntegrator.cpp diff --git a/Base/Scene/Object/imstkTimeIntegrator.h b/Base/TimeIntegrators/imstkTimeIntegrator.h similarity index 94% rename from Base/Scene/Object/imstkTimeIntegrator.h rename to Base/TimeIntegrators/imstkTimeIntegrator.h index 3f5367dca565284f6e1cd913f308a69d5124a533..16e1a6864f7680c3dcf1b70e6dd56e84a9d071b7 100644 --- a/Base/Scene/Object/imstkTimeIntegrator.h +++ b/Base/TimeIntegrators/imstkTimeIntegrator.h @@ -28,14 +28,6 @@ namespace imstk { -enum class TimeIntegratorType -{ - forwardEuler, - backwardEuler, - newmarkBeta, - centralDifference -}; - /// /// \class TimeIntegrator /// diff --git a/Examples/Sandbox/main.cpp b/Examples/Sandbox/main.cpp index aa159bb77fa1065e3dd7b79332f165cf5c86358b..d8769ef15fbc934cd98f0e40dce95ddd1d351a82 100644 --- a/Examples/Sandbox/main.cpp +++ b/Examples/Sandbox/main.cpp @@ -10,7 +10,7 @@ // Objects #include "imstkSceneObject.h" -#include "imstkVirtualToolObject.h" +#include "imstkVirtualCouplingObject.h" #include "imstkLight.h" #include "imstkCamera.h" @@ -253,7 +253,7 @@ void testTwoFalcons() auto sphere0Geom = std::make_shared<imstk::Sphere>(); sphere0Geom->setPosition(imstk::Vec3d(16,4.5,0)); sphere0Geom->scale(1); - auto sphere0Obj = std::make_shared<imstk::VirtualToolObject>("Sphere0", falcon0, 30); + auto sphere0Obj = std::make_shared<imstk::VirtualCouplingObject>("Sphere0", falcon0, 30); sphere0Obj->setVisualGeometry(sphere0Geom); sphere0Obj->setCollidingGeometry(sphere0Geom); scene->addSceneObject(sphere0Obj); @@ -262,7 +262,7 @@ void testTwoFalcons() auto sphere1Geom = std::make_shared<imstk::Sphere>(); sphere1Geom->setPosition(imstk::Vec3d(-16,4.5,0)); sphere1Geom->scale(1); - auto sphere1Obj = std::make_shared<imstk::VirtualToolObject>("Sphere1", falcon1, 30); + auto sphere1Obj = std::make_shared<imstk::VirtualCouplingObject>("Sphere1", falcon1, 30); sphere1Obj->setVisualGeometry(sphere1Geom); sphere1Obj->setCollidingGeometry(sphere1Geom); scene->addSceneObject(sphere1Obj);