iMSTK
Interactive Medical Simulation Toolkit
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 1234567]
 Cimstk::ParallelUtils::AABBFunctorPrivate helper class, providing operator() using in std::parallel_reduce for finding axis-aligned bounding box of a point set
 Cimstk::AbstractDynamicalModelAbstract class for mathematical model of the physics governing the dynamic object
 CAccumulationBuffer< T >Class to accumulate values for determining a rolling average note that the buffer will be filled with 0 at initialization, therefore the average will ramp up slowly as the buffer is filled
 CAccumulationBuffer< double >
 CvtkOpenVRRenderWindowInteractorImstk::ActionData
 Cimstk::sph::AdhesionKernel< N >Adhesion kernel
 Cimstk::AnimationModelContains geometric and animation render information
 Cimstk::AssimpMeshIOAssimp reader for surface meshes
 Cimstk::Burner::Burnable
 Cimstk::CameraProduces a perpsective transformation matrix
 Cimstk::CellIndexElementRepresents a cell by a single cell id OR by N vertex ids. Which case can be determined by the idCount
 Cimstk::CellVertexElementRepresents a cell by its vertex values Possible cells may be: point, edge, triangle, quad, or tetrahedron Maximum 4 vertices (tetrahedron is maximum cell it could represent)
 Cimstk::sph::CohesionKernel< N >Cohesion Kernel
 Cimstk::sph::CohesionKernel< 3 >
 Cimstk::PbdCollisionHandling::ColElemSidePacks the collision element together with the data it will need to process it (for swapping)
 Cimstk::CollisionDataDescribes the contact manifold between two geometries
 Cimstk::CollisionElementUnion of collision elements. We use a union to avoid polymorphism. There may be many elements and accessing them needs to be quick. Additionally the union keeps them more compact and allows one to keep them on the stack
 Cimstk::CollisionHandlingBase class for all collision handling classes
 Cimstk::PbdCollisionHandling::CollisionSideData
 Cimstk::ColorColor in RGB space
 Cimstk::ColorFunctionA regularly/structured table of colors to lookup by value
 Cimstk::CommandStores everything needed to invoke an event A call may not be present, in which case invoke doesn't do anything
 Cimstk::ProgrammableClient::CommandGeneral struct for command. Command will call activate when start time is reached, call updateDevice while active, and call complete when duration is over
 Cimstk::ComponentRepresents a part of an entity, involved in a system. The component system is doubly linked meaning the Entity contains a shared_ptr to Component while the Component keeps a weak_ptr to Entity. Components are able to not exist on an entity as the entity parent is not garunteed to exist. The initialize call cannot be issue'd without a valid entity
 Cimstk::DataArray< T >::const_iterator
 Cimstk::VecDataArray< T, N >::const_iterator
 Cimstk::CutData
 Cimstk::DataTrackerStore time based data to write to a file
 CDeformableObjectScene objects that can deform
 Cimstk::DirectLinearSolver< MatrixType >Dense direct solvers. Solves a dense system of equations using Cholesky decomposition
 Cimstk::EdgeEdgeCCDState
 Cimstk::EdgePairHash together a pair of edges
 CEdgePair
 Cimstk::CollisionElement::Element
 Cimstk::DataTracker::Element
 Cimstk::EmptyElement
 Cenable_shared_from_this
 Cimstk::DataTracker::ePhysicsCommon data values to track
 Cequal_toTest if two points are the same or not by comparing their id and coordinates
 Cstd::equal_to< imstk::PointEntry >
 Cstd::equal_to< std::shared_ptr< imstk::TaskNode > >Equal_to used in algorithms in STL when referring to a shared_ptr<TaskNode>
 Cimstk::EventBase class for events which contain a type, priority, and data priority defaults to 0 and uses a greater than comparator. Negatives are allowed
 Cimstk::EventObjectEventObject is the base class for all objects in iMSTK that can receive and emit events. It supports direct and queued observer functions. Direct observers receive events immediately on the same thread This can either be posted on an object or be a function pointer Queued observers receive events within their queue which they can process whenever they like. These can be connected with the connect/queuedConnect/disconnect functions Lambda recievers cannot be disconnected unless all receivers to a signal are removed
 Cimstk::FastMarch
 CFeDeformable
 Cimstk::FeDeformBodyStateThis class stores the state of the unknown field variable in vectorized form
 Cimstk::FemModelConfigParameters for finite element model
 Cimstk::GeometryAlgorithmAbstract base class for geometry algorithms. GeometryAlgorithms take N input geometries and produce N output geometries. Subclasses should implement requestUpdate to do algorithm logic. Subclasses may also setInputPortReq to require an input to be a certain type
 Cimstk::GraphClass to represent a graph object
 Cimstk::GraspedDataInfo needed to add a constraint for the grasped object Garunteed to be a PbdObject
 Cimstk::GrasperDataGrasperData is either a ray, a grasping geometry, or another PbdObject (rigid)
 CGraspingData
 Cimstk::GridBasedNeighborSearchClass for searching neighbors using regular grid
 ChashReturns a hash value for a PointEntry
 Cstd::hash< EdgePair >
 Cstd::hash< imstk::EdgePair >
 Cstd::hash< imstk::PbdCHTableKey >Gives hashing function for PbdCHFuncTableKey complete unique/garunteed no collisions
 Cstd::hash< imstk::PointEntry >
 Cstd::hash< imstk::TriCell >Gives a hashing function for triangles that results in identical hashes for any ordering of ids hash(0,1,2)=hash(1,2,0) and is well distributed (avoids collisions)
 Cstd::hash< std::shared_ptr< imstk::TaskNode > >Hash used in algorithms in STL when referring to a shared_ptr<TaskNode>
 Cimstk::IblProbeImage-based lighting probe
 CImagePolyDataMaskThis filter generates a binary mask from input surface mesh. Optionally one may provide a reference image for which to use its spacing, origin, dimensions It can also work with some geometry that is non-manifold, but results are ambiguous
 Cimstk::ImplicitFunctionGradientBase struct for gradient functors
 Cimstk::ImplicitStructuredCurvatureCurvature given in structured coordinates
 Cimstk::imstkNew< T >Std::shared_ptr<T> obj = std::make_shared<T>(); equivalent, convenience class for STL shared allocations. Cannot be used in overloaded polymorphic calls
 CInput
 Cimstk::InternalForceModelBase class for internal force model within the following context
 Cimstk::DataArray< T >::iterator
 Cimstk::VecDataArray< T, N >::iterator
 CKeyboardSceneControllerThis is the base class for keyboard based controls You can construct this and observe it or subclass and override to implement controls
 ClessThis method is defined to allow for the map to be properly indexed by Texture objects
 Cstd::less< imstk::NormalGroup >This method is defined to allow for the map to be properly indexed by Texture objects
 Cstd::less< std::shared_ptr< imstk::Texture > >
 Cimstk::LevelSetModelConfig
 Cimstk::LinearProjectionConstraintLinear projection constraint
 Cimstk::LinearSolver< SystemMatrixType >Base class for linear solvers
 Cimstk::LinearSolver< Matrixd >
 Cimstk::LinearSolver< SparseMatrixd >
 CLoggerLazy initialized singleton
 Cimstk::LoggerG3
 Cimstk::LoggerSynchronous
 Cimstk::LogMessageBase
 Cimstk::LogOutput
 Cimstk::LooseOctreeClass LooseOctree, where each tree node has a loose boundary which is exactly twice big as its exact, tight boundary During tree update, a primitive is moved around from node to node If removed from a node, the primitive is moving up to find the lowest node that tightly contains it, then it is inserted again from top-down, to a lowest level possible, stopping at a node that loosely contains it Pointer variables in tree and tree node are all raw pointers, not smart pointers, for fast operations
 Cimstk::ParallelUtils::MaxL2NormFunctorPrivate helper class, providing operator() using in std::parallel_reduce for finding max L2 norm of an array of Vec3r
 Cimstk::MeshIOMesh data IO
 Cimstk::MeshSidePacks the info needed to add a constraint to a side by reference (this way dynamic casting & dereferencing is not being done in tight loops)
 Cimstk::MshMeshIOCan read/return LineMesh, SurfaceMesh, TetrahedralMesh, or HexahedralMesh from given .msh file. Can only read homogenous elements
 CNeedleData
 CNeedleEmbedderImplements PBD embedded tissue handling for when the needle is embedded in the tissue
 Cimstk::NeighborInfoThe helper struct to store relative positions and densities of neighbor particlcles
 Cimstk::NeighborSearchA wrapper class for Grid-based and spatial-hashing neighbor search
 Cimstk::FastMarch::Node
 Cimstk::FastMarch::NodeComparator
 Cimstk::NonLinearSystem< Matrix >Base class for a multi-variable nonlinear system
 Cimstk::NonLinearSystem< SystemMatrixType >
 Cimstk::NormalGroupHelper class for indentifying duplicate points
 Cobject
 Cimstk::ObjectFactory< T, Args >Generic Factory class that can take objects with constructor parameters
 Cimstk::ObjectFactory< std::shared_ptr< CollisionDetectionAlgorithm > >
 Cimstk::ObjectFactory< std::shared_ptr< DeviceManager > >
 Cimstk::ObjectFactory< std::shared_ptr< VTKRenderDelegate > >
 Cimstk::ObjectIOObjectIO provides SceneObject reading capabilities It is used to read complex visual objects or animated objects
 Cimstk::OctreeNodeThe OctreeNode class
 Cimstk::OctreeNodeBlockThe OctreeNodeBlock struct This is a data structure to store a memory block of 8 tree node at a time Using a block of 8 nodes at a time can reduce node allocation/merging/slitting overhead
 Cimstk::OctreePrimitiveThe OctreePrimitive struct For each octree primitive (point/triangle/analytical geometry), store its relevant data
 Cimstk::OpenHapticDeviceManager::OpenHapticDeviceManagerImpl
 Cimstk::PbdBodyRepresents a pbd body in the model. This is a data only object. It does no function. PbdBody can be of different types. The types effect what properties it has
 CPbdBodyToBodyConstraintPoint normal constraint betweent two bodies. Separates two bodies along the provided normal past the two contact points
 Cimstk::PbdCHTableKeyUsed as a key in a function table to decide how to handle resulting collision
 CPbdCloth
 CPbdCollisionOneObject
 CPbdConectiveTissueConstraintGeneratorThis class takes in three pbd objects. The first two represent the bodies that the user wants to connect and the third is the line mesh representation of the connective tissue that is generated using the ConnectiveStrandGenerator filter. The class then generates a set of constraints that connect the ends of the connective strands to the associated organ. The process assumes that the tips of the strands are coincident with the surface of the two pbd objects being connected
 Cimstk::PbdConstraintBase Constraint class for Position based dynamics constraints
 Cimstk::PbdConstraintContainerContainer for pbd constraints
 Cimstk::PbdConstraintFunctorPbdConstraintFunctor take input geometry and produce constraints. It exists to allow extensible constraint generation. Any number of constraints could be generated by a functor for a single geometry with any number of parameters
 CPbdCutting
 Cimstk::PbdFemConstraintConfigEither mu/lambda used, may be computed from youngs modulus and poissons ratio
 Cimstk::PbdModelConfigGives parameters for PBD simulation
 CPbdPointToBodyConstraintResolves a point on body to a vertex with linear and angular movement
 Cimstk::PbdStateProvides interface for accessing particles from a 2d array of PbdBody,Particles
 CPbdVolume
 Cimstk::DataTracker::PhysicsHeader names of the common data values to track
 Cimstk::PickDataPickData provides ids to indicate what was picked These may be optionally used to indicate the selection
 CPlot2d
 Cimstk::PointDirectionElementDireclty gives a point-direction contact as its collision data
 Cimstk::PointEntry
 Cimstk::PointIndexDirectionElementDireclty gives a point-direction contact as its collision data, point given by index
 Cimstk::PointSetData
 Cimstk::sph::Poly6Kernel< N >The poly6 Kernel
 Cimstk::sph::Poly6Kernel< 3 >
 Cimstk::ProjectedGaussSeidelSolver< Scalar >Solves a linear system using the projected gauss seidel method. Only good for diagonally dominant systems, must have elements on diagonals though. The initial guess (start) is always zero, convergence value may be specified with epsilon, relaxation decreases the step size (useful when may rows exist in A)
 Cimstk::PunctureThe puncture itself is composed of a state and extra non-essential user data
 Cimstk::NeedlePbdCH::PunctureData
 Cimstk::PunctureIdEqThe entity and tissue id should be reversible
 Cimstk::PunctureIdHashThe entity and tissue id should be reversible
 Cimstk::NeedlePbdCH::PuncturePoint
 Cimstk::ParallelUtils::RangeFunctor< ContainerType >Private helper class, providing operator() using in std::parallel_reduce for finding range of a container with specified begin/end/operator[],operator++ functions
 Cimstk::RbdConstraintAbstract class for rigid body constraints. A RbdConstraint should mainly provide a constraint jacobian. It provides a constraint gradient for both linear and angular (each column). This gradient should vanish as the constraint scalar approaches 0
 Cimstk::ReducedStVKConfig
 Cimstk::RendererConfig
 Cimstk::RenderParticleParticle data
 Cimstk::RenderParticleKeyFrameKeyframe for particle animation
 Cimstk::RigidBodyServes as a handle to the body
 CRigidBody2
 Cimstk::RigidBodyModel2Config
 Cimstk::RigidBodyState2Kinematic state of rigid bodies within a system
 CRigidObjectObjectCollisionThis class defines a collision interaction between two RigidObjects This involves a RigidObjCH which will generate 2 way or 1 way constraints for the RigidBodyModel/s depending on which system they belong too
 Cruntime_error
 CSceneBehaviour
 CSceneBehaviourA SceneBehaviour represents a single component system that resides in the scene. It makes the assumption that all components used are updated with a double for deltaTime/time passed
 Cimstk::SceneConfig
 Cimstk::ScreenCaptureUtilityUtility class to manage screen capture
 CSdfHaptics
 Cimstk::SharedObjectRegistrar< T, U, Args >Templated class that can add to the object factory with objects that will be generated via std::make_shared
 Cimstk::SolverBaseBase class for solvers
 Cimstk::SpatialHashTableAbstract class for spatial hash tables
 Cimstk::SphBoundaryConditions
 CSPHBoundaryConditionsClass that holds methods and members for boundary conditions
 CSPHModelSPH fluid model
 Cimstk::SphModelConfigClass that holds the SPH model parameters
 Cimstk::SphSimulationKernelsClass contains SPH kernels for time integration, using different kernel for different purposes
 Cimstk::SphStateSimulation states of SPH particles
 Cimstk::sph::SpikyKernel< N >Spiky Kernel
 Cimstk::sph::SpikyKernel< 3 >
 Cimstk::ParallelUtils::SpinLockThe SpinLock class
 CSpotA spot light is a point light in a cone shape
 Cimstk::SSAOConfig
 Cimstk::stdSinkA standard sink that prints the message to a standard output
 Cimstk::StopWatchStop Watch utility class
 CSubdivideSurfaceMeshThis filter subidivdes the triangles of a SurfaceMesh into more smaller triangles
 Cimstk::SurfMeshData
 Cimstk::TaskGraphBase class for TaskGraph, a collection of TaskNode's. Maintains nodes, adjacencyList, and invAdjacencyList
 Cimstk::TaskGraphControllerBase class for TaskGraph controllers which are responsible for executing the TaskGraph
 Cimstk::TaskGraphVizWriterWrites a TaskGraph to an svg file. Produces unique node names from duplicates with postfix. Can also color by node compute time and highlight the critical path
 Cimstk::TaskNodeBase class for TaskGraph nodes
 Cimstk::TextureManager< T >The TextureManager provides delegates for textures, it will create new ones and cache old ones
 Cimstk::ParallelUtils::ThreadManager
 Cimstk::TimeIntegratorThis class defines the time integrators of various types. It only sets the rules of how the velocity (or equivalent) and acceleration (or equivalent) of the present time in terms of positions (or equivalent) from previous time steps
 CTissueDataFlattened out with reference members
 CvtkOpenVRRenderWindowInteractorImstk::TrackerActions
 Cimstk::TriCellUtility for triangle comparison
 Cimstk::UniformSpatialGrid< CellData >Class for handling data in 3D grid
 Cimstk::UPSCounterUtility class to count updates per second
 Cimstk::Puncture::UserDataAccompanying data stored with a puncture. No usage within Needle structure
 Cimstk::VegaMeshIOContains utility classes that convert vega volume mesh to volume mesh and vice-versa
 CViewerBase class for viewer that manages render window and the renderers /// Creates backend-specific renderers on a per-scene basis. /// Contains user API to configure the rendering with various back-ends /// ```
 Cimstk::ViewerConfig
 Cimstk::sph::ViscosityKernel< N >Viscosity kernel
 Cimstk::sph::ViscosityKernel< 3 >
 Cimstk::VolumeRenderMaterialPresetsTODO
 CvtkInteractorStyle3D
 CvtkInteractorStyleTrackballCamera
 Cimstk::VTKMeshIOImplements VTK read and write functions
 CvtkRenderWindowInteractor3D