AdvSimCtrl< T > Class Template Reference

#include <TAPsAdvSimCtrl.hpp>

List of all members.

Static Public Member Functions

static void AllocateListOfSimulableModels (std::vector< ModelForSurgery< T > * > *listOfModelsForSurgery, std::vector< OpenGL::ModelSuture< T > * > *listOfSutureModels)
 Allocate list of models for surgery (Deallocate function should be called to cleanup if this Allocate funciton is called).
static void DeallocateListOfSimulableModels ()
 Deallocate list of models for surgery.
static void EnforceAllConstraints ()
 Enforce all constraints.
static AdvSimSupport_DS< T > * GetAdvSimData ()
 Get advanced simulation data.
static AdvSimSupport_DS< T > * GetDefaultAdvSimData ()
 Output Operator <<.
static std::vector
< ModelForSurgery< T > * > & 
GetListOfModelsForSurgery ()
 Get list of models for surgery.
static std::vector
< OpenGL::ModelSuture< T > * > & 
GetListOfSutureModels ()
 Get list of suture models.
static unsigned int GetNumOfModelsForSurgery ()
 Get total number of models for surgery.
static unsigned int GetNumOfSubModelsForSurgery ()
 Get total number of sub models for surgery.
static unsigned int GetNumOfSutureModels ()
 Get total number of suture models.
static void SetAdvSimData (AdvSimSupport_DS< T > *ptr)
 Set advanced simulation data.

Static Protected Member Functions

static void SetListOfModelsForSurgery (std::vector< ModelForSurgery< T > * > &list)
 Set list of models for surgery.
static void SetListOfSutureModels (std::vector< OpenGL::ModelSuture< T > * > &list)
 Set list of suture models.

Static Protected Attributes

static std::vector
< OpenGL::HETriMeshOneModelMultiParts
< T > * > 
m_ListOfHETriMeshOneModelMultiParts
 list of sub models for surgery
static std::vector
< ModelForSurgery< T > * > 
m_ListOfModelsForSurgery
 list of models for surgery
static std::vector
< OpenGL::ModelSuture< T > * > 
m_ListOfSutureModels
 list of suture models


Detailed Description

template<typename T>
class AdvSimCtrl< T >

A static class for supporting advanced simulation. Its existence is to provide an advanced simulation control. For example, to orchestrate all interactions among models and sutures.

This include file must be added as the last one of TAPs include files.

Definition at line 32 of file TAPsAdvSimCtrl.hpp.


Member Function Documentation

template<typename T>
void AdvSimCtrl< T >::AllocateListOfSimulableModels ( std::vector< ModelForSurgery< T > * > *  listOfModelsForSurgery,
std::vector< OpenGL::ModelSuture< T > * > *  listOfSutureModels 
) [inline, static]

Allocate list of models for surgery (Deallocate function should be called to cleanup if this Allocate funciton is called).

Parameters:
listOfModelsForSurgery  list of models for surgery
listOfSutureModels  list of suture models

Definition at line 40 of file TAPsAdvSimCtrl.cpp.

00044 {
00045     if ( listOfModelsForSurgery )   SetListOfModelsForSurgery( *listOfModelsForSurgery );
00046     if ( listOfSutureModels )       SetListOfSutureModels( *listOfSutureModels );
00047 
00048     // Delete the current advanced simulation data
00049     if ( GetAdvSimData() != GetDefaultAdvSimData() ) {
00050         delete GetAdvSimData();
00051     }
00052 
00053     // Generate a new advanced simulation data
00054     SetAdvSimData( new AdvSimSupport_DS<T>( GetNumOfSubModelsForSurgery(), GetNumOfSutureModels() ) );
00055 }

template<typename T>
void AdvSimCtrl< T >::DeallocateListOfSimulableModels (  )  [inline, static]

Deallocate list of models for surgery.

Definition at line 58 of file TAPsAdvSimCtrl.cpp.

00059 {
00060     // Delete the current advanced simulation data
00061     if ( GetAdvSimData() != GetDefaultAdvSimData() ) {
00062         delete GetAdvSimData();
00063         SetAdvSimData( GetDefaultAdvSimData() );
00064     }
00065 }

template<typename T>
static void AdvSimCtrl< T >::EnforceAllConstraints (  )  [inline, static]

Enforce all constraints.

Definition at line 70 of file TAPsAdvSimCtrl.hpp.

00071     {
00072         GetAdvSimData()->EnforceAllConstraints();
00073     }

template<typename T>
static AdvSimSupport_DS<T>* AdvSimCtrl< T >::GetAdvSimData (  )  [inline, static]

Get advanced simulation data.

Definition at line 60 of file TAPsAdvSimCtrl.hpp.

00060 { return AdvSimSupport<T>::GetAdvSimData(); }

template<typename T>
static AdvSimSupport_DS<T>* AdvSimCtrl< T >::GetDefaultAdvSimData (  )  [inline, static]

Output Operator <<.

Constructors < Destructor Return this object info as a string Get default advanced simulation data

Definition at line 58 of file TAPsAdvSimCtrl.hpp.

template<typename T>
static std::vector< ModelForSurgery<T> * >& AdvSimCtrl< T >::GetListOfModelsForSurgery (  )  [inline, static]

Get list of models for surgery.

Definition at line 83 of file TAPsAdvSimCtrl.hpp.

00083 { return ListOfModelsForSurgery; }

template<typename T>
static std::vector< OpenGL::ModelSuture<T> * >& AdvSimCtrl< T >::GetListOfSutureModels (  )  [inline, static]

Get list of suture models.

Definition at line 85 of file TAPsAdvSimCtrl.hpp.

00085 { return ListOfSutureModels; }

template<typename T>
static unsigned int AdvSimCtrl< T >::GetNumOfModelsForSurgery (  )  [inline, static]

Get total number of models for surgery.

Definition at line 64 of file TAPsAdvSimCtrl.hpp.

00064 { return static_cast<unsigned int>( m_ListOfModelsForSurgery.size() ); }

template<typename T>
static unsigned int AdvSimCtrl< T >::GetNumOfSubModelsForSurgery (  )  [inline, static]

Get total number of sub models for surgery.

Definition at line 66 of file TAPsAdvSimCtrl.hpp.

00066 { return static_cast<unsigned int>( m_ListOfHETriMeshOneModelMultiParts.size() ); }

template<typename T>
static unsigned int AdvSimCtrl< T >::GetNumOfSutureModels (  )  [inline, static]

Get total number of suture models.

Definition at line 68 of file TAPsAdvSimCtrl.hpp.

00068 { return static_cast<unsigned int>( m_ListOfSutureModels.size() ); }

template<typename T>
static void AdvSimCtrl< T >::SetAdvSimData ( AdvSimSupport_DS< T > *  ptr  )  [inline, static]

Set advanced simulation data.

Definition at line 62 of file TAPsAdvSimCtrl.hpp.

template<typename T>
void AdvSimCtrl< T >::SetListOfModelsForSurgery ( std::vector< ModelForSurgery< T > * > &  list  )  [inline, static, protected]

Set list of models for surgery.

Definition at line 74 of file TAPsAdvSimCtrl.cpp.

00075 {
00076     m_ListOfHETriMeshOneModelMultiParts.clear();
00077 
00078     std::vector< ModelForSurgery<T> * >::iterator pos = list.begin();
00079     // Iterate the list of surgery models
00080     while ( pos != list.end() ) {
00081         // Iterate each part of the surgery model
00082         for ( int i = 0; i < (*pos)->GetNumberOfParts(); ++i ) {
00083             m_ListOfHETriMeshOneModelMultiParts.push_back( (*pos)->GetPtrToPartNo(i) );
00084         }
00085         ++pos;
00086     }
00087 }

template<typename T>
static void AdvSimCtrl< T >::SetListOfSutureModels ( std::vector< OpenGL::ModelSuture< T > * > &  list  )  [inline, static, protected]

Set list of suture models.

Definition at line 94 of file TAPsAdvSimCtrl.hpp.

00094 { m_ListOfSutureModels = list; }


Member Data Documentation

template<typename T>
std::vector< OpenGL::HETriMeshOneModelMultiParts< T > * > AdvSimCtrl< T >::m_ListOfHETriMeshOneModelMultiParts [inline, static, protected]

list of sub models for surgery

Definition at line 99 of file TAPsAdvSimCtrl.hpp.

template<typename T>
BEGIN_NAMESPACE_TAPs std::vector< ModelForSurgery< T > * > AdvSimCtrl< T >::m_ListOfModelsForSurgery [inline, static, protected]

list of models for surgery

Definition at line 97 of file TAPsAdvSimCtrl.hpp.

template<typename T>
std::vector< OpenGL::ModelSuture< T > * > AdvSimCtrl< T >::m_ListOfSutureModels [inline, static, protected]

list of suture models

Definition at line 98 of file TAPsAdvSimCtrl.hpp.


The documentation for this class was generated from the following files:

Generated on Mon Oct 13 11:43:58 2008 for TAPs by  doxygen 1.5.6