iMSTK
Interactive Medical Simulation Toolkit
Todo List
Namespace imstk
remove nameless union/struct in the future
Class imstk::AbstractVTKViewer
: Implement pausing/resuming
Class imstk::BoneDrillingCH
: Doesn't work right now. Tet removal needs to be fixed. I would suggest buffering setting removed elements to a dummy vertex.
Member imstk::BoneDrillingCH::erodeBone (const std::vector< CollisionElement > &elementsA, const std::vector< CollisionElement > &elementsB)
Unused variable, maybe used in furture?
Class imstk::CollisionHandling
: Abstract both GeometryAlgorithm and this together
Class imstk::ColorFunction
: Currently just serves as storage, write the mapping functions
Class imstk::DebugGeometryModel
: Allow per vertex and per cell coloring
Class imstk::DeviceClient
Abstract base class for device client
Member imstk::DeviceManagerFactory::makeDeviceManager ()
: Extend based on device availability, multi device support
Class imstk::EventObject
ThreadObject affinity
Member imstk::FemDeformableBodyModel::initializeMassMatrix ()
Add option to save mass matrix to file
Member imstk::Geometry::computeBoundingBox (Vec3d &lowerCorner, Vec3d &upperCorner, const double paddingPercent=0.0)
Padding should not be here
Member imstk::GeometryUtils::createTetrahedralMeshCover (std::shared_ptr< SurfaceMesh > surfMesh, const int nx, const int ny, int nz)
can be parallelized by make NUM_THREADS copies of validTet, or use atomic op on validTet
Member imstk::HyperElasticMaterialType
Move to appropriate place
Class imstk::KeyboardSceneControl
: Thread affinity
Member imstk::LinearFemForceModel::getTangentStiffnessMatrix (const Vectord &u, SparseMatrixd &tangentStiffnessMatrix) override
Clear warning C4100
Class imstk::MeshCut
: Generalize the cutting into composited bits and provide one concrete MeshCut instead of many subclasses of this
Class imstk::MouseSceneControl
: Make base class to control just a scene, subclass for debug toggle or remove debug completely
Member imstk::NewtonSolver< SystemMatrix >::updateForcingTerm (const double ratio, const double stopTolerance, const double fnorm)
Log this
Member imstk::NonLinearSolver< SystemMatrix >::armijo (const Vectord &dx, Vectord &x, const double previousFnorm)

log this

Log this

Log this

Add to logger

Class imstk::ObjectControllerGhost

: Device render mode to render the actual arm and body of the device

: This should be simplified when PbdObject and RbdObject are removed

Member imstk::OctreePrimitiveType
Add line primitive to geometry
Class imstk::OpenHapticDeviceManager
add the frame rate option for the servo loop
Member imstk::PbdModel::addConstraints (std::shared_ptr< std::unordered_set< size_t >> vertices, const int bodyId)
: Move to containers and functors
Member imstk::PbdObjectController::getSmoothingKernelSize () const
: Vary with dt as performance of program will effect the size/number of samples
Class imstk::PerformanceGraph
: There is no delegate for this yet, it hooks directly into VTKRenderer
Class imstk::PointPicker
: Make extensible
Member imstk::ReducedStVK::readModalMatrix (const std::string &fname)
: make it private/protected?
Class imstk::RigidObjectController
: Force smoothening currently incurs loss
Member imstk::RigidObjectController::getSmoothingKernelSize () const
: Vary with dt as performance of program will effect the size/number of samples
Member imstk::SphModel::findNearestParticleToVertex (const VecDataArray< double, 3 > &points, const std::vector< std::vector< size_t >> &indices)
move this out of this class
Member imstk::SphModelConfig::m_minTimestep
Move this to solver or time integrator in the future
Member imstk::SurfaceMesh::optimizeForDataLocality ()
Further optimization to find a 1-d uninterrupted sub-graph at each iteration.
Class SubdivideSurfaceMesh
: test with LineMesh