SimPropForMultiPartMeshModel_HalfEdge< T > Class Template Reference

#include <TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp>

Inheritance diagram for SimPropForMultiPartMeshModel_HalfEdge< T >:

Inheritance graph
[legend]
Collaboration diagram for SimPropForMultiPartMeshModel_HalfEdge< T >:

Collaboration graph
[legend]

List of all members.

Public Member Functions

void AdvSim (T tCurrent)
 Advance a simulation step with a predefined time step.
void AdvSim (T tCurrent, T tNext)
 Advance a simulation step.
void ClearAllForces ()
 Clear (all) forces (and maybe velocities too).
int GetNumSimSubSteps () const
 Get number of simulation sub-steps.
GetPredefinedTimeStep () const
 Get the predefined time step in sec.
std::vector< SpringRef< T > * > & GetSpringList ()
std::vector< SpringRef< T >
* > const & 
GetSpringList () const
 Get spring list.
std::vector
< HEVertexPtrWithExtraInfo< T > * > & 
GetVertexList ()
std::vector
< HEVertexPtrWithExtraInfo< T >
* > const & 
GetVertexList () const
 Get vertex list.
void SetNumSimSubSteps (int i)
 Set number of simulation sub-steps.
bool SetODESolver (TAPs::Enum::ODESolver solverMethod)
 Set the ODE solver.
void SetPredefinedTimeStep (T ts)
 Set the predefined time step in sec.
 SimPropForMultiPartMeshModel_HalfEdge (T massOfPoint=1, T springStiffness=1, T springDamper=1, TAPs::Enum::ModelType modelType=TAPs::Enum::MODEL_DEFORM, T predefinedTimeStep=0.01, int numSimSubSteps=10, bool enableColDet=true, bool enableSimulation=true)
 Constructor.
int Size () const
virtual std::string StrInfo () const
 Assignment operator.
void UpdateStateToArray ()
 For update simulation.
 ~SimPropForMultiPartMeshModel_HalfEdge ()
 Copy constructor.

Protected Member Functions

void ArrayToState (T *src)
void DdtStateToArray (T *xdot, T dt)
void StateToArray (T *dst)

Static Protected Member Functions

static bool DxDt (T dt, MATH::VectorSet< T > &x, MATH::VectorSet< T > &xdot, void *userData)

Protected Attributes

std::vector
< HEVertexPtrWithExtraInfo< T > * > 
m_HEVertexPtrList
 list of half-edge vertices
int m_iLimitStepCount
 Limit step count.
int m_iNumSimSubSteps
 number of simulation sub-steps for moving from current time to next time
int m_iStateSize
 Mass Points (mesh vertices) where 6 = 3 positions + 3 velocities (for x,y,z)
TAPs::MATH::ODESolver< T > * m_prODESolver
 ODE solver.
m_tPredefinedTimeStep
 predefined time step in sec
std::vector< SpringRef< T > * > m_vpSpringRef
 Clear memory allocation.
MATH::VectorSet< T > * x0
 pointer to x0 Data
MATH::VectorSet< T > xData_1
 temp data with size of m_iStateSize * 6
MATH::VectorSet< T > xData_2
 temp data with size of m_iStateSize * 6
MATH::VectorSet< T > * xEnd
 pointer to xEnd Data

Friends

std::ostream & operator<< (std::ostream &output, SimPropForMultiPartMeshModel_HalfEdge< T > const &obj)
 Output Operator <<.


Detailed Description

template<typename T>
class SimPropForMultiPartMeshModel_HalfEdge< T >

Definition at line 19 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.


Constructor & Destructor Documentation

template<typename T>
BEGIN_NAMESPACE_TAPs SimPropForMultiPartMeshModel_HalfEdge< T >::SimPropForMultiPartMeshModel_HalfEdge ( massOfPoint = 1,
springStiffness = 1,
springDamper = 1,
TAPs::Enum::ModelType  modelType = TAPs::Enum::MODEL_DEFORM,
predefinedTimeStep = 0.01,
int  numSimSubSteps = 10,
bool  enableColDet = true,
bool  enableSimulation = true 
) [inline]

Constructor.

Parameters:
massOfPoint  mass of point
springStiffness  spring stiffness value
springDamper  spring damper value
modelType  type of model
predefinedTimeStep  predefined time step in sec
numSimSubSteps  number of simulation sub-steps
enableColDet  collision detection on/off status
enableSimulation  simulation on/off status

Definition at line 20 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.cpp.

00030     :   SimPropForMultiPartMeshModel<T>( 
00031             springStiffness,
00032             springDamper,
00033             massOfPoint,
00034             modelType,
00035             enableColDet,
00036             enableSimulation
00037         )
00038         , m_prODESolver( NULL )
00039         , m_tPredefinedTimeStep( predefinedTimeStep )
00040         , m_iNumSimSubSteps( numSimSubSteps )
00041     #ifdef  TAPs_USE_CUDA
00042         , m_cudaVertexList( NULL )
00043     #endif  TAPs_USE_CUDA
00044 {}

Copy constructor.

Destructor.

Destructor

Definition at line 89 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.cpp.

00090 {
00091     if ( m_prODESolver ) delete m_prODESolver;
00092 
00093     #ifdef  TAPs_USE_CUDA
00094     CUDA_Cleanup();
00095     #endif//TAPs_USE_CUDA
00096 }


Member Function Documentation

template<typename T>
void SimPropForMultiPartMeshModel_HalfEdge< T >::AdvSim ( tCurrent  )  [inline]

Advance a simulation step with a predefined time step.

Definition at line 80 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

00081     { AdvSim( tCurrent, tCurrent +  GetPredefinedTimeStep() ); }

template<typename T>
void SimPropForMultiPartMeshModel_HalfEdge< T >::AdvSim ( tCurrent,
tNext 
) [inline]

Advance a simulation step.

Definition at line 312 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.cpp.

00313 {
00314     if ( IsSimOn() == false )   return;
00315 
00316     switch ( GetModelType() ) {
00317         case TAPs::Enum::MODEL_DEFORM:
00318             //std::cout << "\tMODEL_DEFORM\n";
00319             //break;
00320 
00321         #ifdef  TAPs_USE_CUDA
00322             CUDA_CopyVertexToMem();
00323             TAPsCUDA__global__SimPropForMultiPartMeshModel_HalfEdge_AdvSim( 
00324                 m_HEVertexPtrList.size(),       
00325                 64,                             
00326                 tCurrent, tNext, 
00327                 m_cudaVertexList 
00328             );
00329             CUDA_CopyMemToVertex();
00330         #else //TAPs_USE_CUDA
00331             {
00332                 T tSubStepTime = ( tNext - tCurrent ) / m_iNumSimSubSteps;
00333                 tNext = tCurrent + tSubStepTime;
00334                 for ( int i = 0; i < m_iNumSimSubSteps; ++i )
00335                 {
00336                     //-----------------------------------------------------
00337                     // Swap pointers
00338                     MATH::VectorSet<T> * tmpPtr = x0;
00339                     x0   = xEnd;
00340                     xEnd = tmpPtr;
00341                     //-----------------------------------------------------
00342                     // ODE Solver
00343                     m_prODESolver->Solve( *x0, *xEnd, tCurrent, tNext, DxDt, this );
00344                     //-----------------------------------------------------
00345                     // Copy xEnd to object state (position and velocity of particles)
00346                     ArrayToState( &(*xEnd)[0] );
00347                     //-----------------------------------------------------
00348                     //SimGravity( tCurrent, tNext );
00349                     //-----------------------------------------------------
00350                     //GetBVHTree()->Update();
00351                     //CalAndSetNormals();
00352                     tCurrent = tNext;
00353                     tNext += tSubStepTime;
00354                 }
00355             }
00356         #endif//TAPs_USE_CUDA
00357             break;
00358 
00359         case TAPs::Enum::MODEL_DEFORM_ELASTIC:
00360             //std::cout << "\tMODEL_DEFORM_ELASTIC\n";
00361             //break;
00362             {
00363                 std::vector< HEVertexPtrWithExtraInfo<T> * >::iterator  pos = m_HEVertexPtrList.begin();
00364                 while ( pos != m_HEVertexPtrList.end() ) {
00365                     //(*pos)->SetHomePosition( (*pos)->GetHomePosition() + Vector3<T>(0,0,-0.001) );
00366                     (*pos)->GetParticleRef()->SetPosition( (*pos)->GetHomePosition() );
00367                     ++pos;
00368                 }
00369             }
00370             break;
00371         case TAPs::Enum::MODEL_DEFORM_PLASTIC:
00372             break;
00373         case TAPs::Enum::MODEL_RIGID:
00374             break;
00375         case TAPs::Enum::MODEL_FIXED:
00376             break;
00377     }
00378 }

template<typename T>
void SimPropForMultiPartMeshModel_HalfEdge< T >::ArrayToState ( T *  src  )  [inline, protected]

Definition at line 205 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.cpp.

00206 {
00207     for ( int i = 0; i < m_iStateSize; ++i ) {
00208         m_HEVertexPtrList[i]->GetParticleRef()->SetPosition( *src, *(src+1), *(src+2) );
00209         src += 3;
00210         m_HEVertexPtrList[i]->GetParticleRef()->SetVelocity( *src, *(src+1), *(src+2) );
00211         src += 3;
00212     }
00213 }

template<typename T>
void SimPropForMultiPartMeshModel_HalfEdge< T >::ClearAllForces (  )  [inline]

Clear (all) forces (and maybe velocities too).

Definition at line 246 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.cpp.

00247 {
00248     for ( int i = 0; i < static_cast<int>( m_HEVertexPtrList.size() ); ++i ) {
00249         m_HEVertexPtrList[i]->GetParticleRef()->SetForce( 0, 0, 0 );
00250         m_HEVertexPtrList[i]->GetHomeParticle().SetForce( 0, 0, 0 );
00251     }
00252 }

template<typename T>
void SimPropForMultiPartMeshModel_HalfEdge< T >::DdtStateToArray ( T *  xdot,
dt 
) [inline, protected]

Definition at line 218 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.cpp.

00219 {
00220     for ( int i = 0; i < m_iStateSize; ++i ) {
00221         if ( m_HEVertexPtrList[i]->GetParticleRef()->GetFixStatus() ) {
00222             *(xdot++) = 
00223             *(xdot++) = 
00224             *(xdot++) = 
00225             *(xdot++) = 
00226             *(xdot++) = 
00227             *(xdot++) = 0;
00228         }
00229         else {
00230             //m_prForce[i] = m_StructForce[i].gravity;
00231             //m_prVelocity[i][1] = m_prForce[i][1] * m_prVertex[i][1] * dt;
00232             //----------------------------------------
00233             *(xdot++) = m_HEVertexPtrList[i]->GetParticleRef()->GetVelocity()[0];
00234             *(xdot++) = m_HEVertexPtrList[i]->GetParticleRef()->GetVelocity()[1];
00235             *(xdot++) = m_HEVertexPtrList[i]->GetParticleRef()->GetVelocity()[2];
00236             *(xdot++) = m_HEVertexPtrList[i]->GetParticleRef()->GetForce()[0];
00237             *(xdot++) = m_HEVertexPtrList[i]->GetParticleRef()->GetForce()[1];
00238             *(xdot++) = m_HEVertexPtrList[i]->GetParticleRef()->GetForce()[2];
00239         }
00240     }
00241 }

template<typename T>
bool SimPropForMultiPartMeshModel_HalfEdge< T >::DxDt ( dt,
MATH::VectorSet< T > &  x,
MATH::VectorSet< T > &  xdot,
void *  userData 
) [inline, static, protected]

Definition at line 138 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.cpp.

00139                                               : time step
00140     MATH::VectorSet<T> &    x,          // I/p: array  x = {pos, vel}
00141     MATH::VectorSet<T> &    xdot,       // O/P: array xdot = {vel, accel}
00142     void *                  userData    // O/P: array of user data
00143 )
00144 {
00145     //-----------------------------------------------------
00146     // Convert userData ptr to ModelStrand ptr
00147     SimPropForMultiPartMeshModel_HalfEdge<T> *pThis = static_cast<SimPropForMultiPartMeshModel_HalfEdge<T> *>( userData );
00148     assert( pThis );
00149 
00150     pThis->ClearAllForces();
00151     //-----------------------------------------------------
00152     // Calculate and Set Spring Forces
00153     for ( int i = 0; i < static_cast<int>( pThis->m_vpSpringRef.size() ); ++i ) {
00154         pThis->m_vpSpringRef[i]->CalAndSetForce();
00155 //      //std::cout << "Force1: " << pThis->m_vpSpringRef[i]->GetForce1() << "\n";
00156 //      //std::cout << "Force2: " << pThis->m_vpSpringRef[i]->GetForce2() << "\n";
00157     }
00158 
00159     /*
00160     //-----------------------------------------------------
00161     for ( int i = 0; i < pThis->m_iStateSize; ++i ) {
00162 //      pThis->(*m_pHEVertexList)[i].GetListParticleRef()->SetVelocity( 0, 0, 0 );
00163 //      pThis->(*m_pHEVertexList)[i].GetListParticleRef()->SetForce( 0, 0, 0 );
00164 
00165         if ( pThis->m_HEVertexPtrList[i]->GetParticleRef()->GetFixStatus() ) {
00166             pThis->m_HEVertexPtrList[i]->GetParticleRef()->SetVelocity( 0, 0, 0 );
00167             pThis->m_HEVertexPtrList[i]->GetParticleRef()->SetForce( 0, 0, 0 );
00168         }
00169         else {
00170 //          pThis->m_pHEVertexList[i]->GetListParticleRef()->SetForce( 0, 0, 0 );
00171 //          pThis->m_prForce[i] = pThis->m_StructForce[i].gravity;
00172 //          pThis->m_prVelocity[i][1] = pThis->m_prForce[i][1] * 
00173 //                                      pThis->m_prVertex[i][1] *
00174 //                                      dt;
00175             Vector3<T> newForce = pThis->m_HEVertexPtrList[i]->GetParticleRef()->GetForce() / 10;
00176             pThis->m_HEVertexPtrList[i]->GetParticleRef()->SetForce( newForce );
00177         }
00178     }
00179     //*/
00180 
00181     //-----------------------------------------------------
00182     pThis->DdtStateToArray( &xdot[0], dt );
00183     //-----------------------------------------------------
00184     return true;
00185 }

template<typename T>
int SimPropForMultiPartMeshModel_HalfEdge< T >::GetNumSimSubSteps (  )  const [inline]

Get number of simulation sub-steps.

Definition at line 89 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

00089 { return m_iNumSimSubSteps; }

template<typename T>
T SimPropForMultiPartMeshModel_HalfEdge< T >::GetPredefinedTimeStep (  )  const [inline]

Get the predefined time step in sec.

Definition at line 84 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

00084 { return m_tPredefinedTimeStep; }

template<typename T>
std::vector< SpringRef<T> * >& SimPropForMultiPartMeshModel_HalfEdge< T >::GetSpringList (  )  [inline]

Definition at line 68 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

00068 { return m_vpSpringRef; }

template<typename T>
std::vector< SpringRef<T> * > const& SimPropForMultiPartMeshModel_HalfEdge< T >::GetSpringList (  )  const [inline]

Get spring list.

Definition at line 67 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

00067 { return m_vpSpringRef; }

template<typename T>
std::vector< HEVertexPtrWithExtraInfo<T> * >& SimPropForMultiPartMeshModel_HalfEdge< T >::GetVertexList (  )  [inline]

Definition at line 64 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

00064 { return m_HEVertexPtrList; }

template<typename T>
std::vector< HEVertexPtrWithExtraInfo<T> * > const& SimPropForMultiPartMeshModel_HalfEdge< T >::GetVertexList (  )  const [inline]

Get vertex list.

Definition at line 63 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

00063 { return m_HEVertexPtrList; }

template<typename T>
void SimPropForMultiPartMeshModel_HalfEdge< T >::SetNumSimSubSteps ( int  i  )  [inline]

Set number of simulation sub-steps.

Definition at line 91 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

00091 { m_iNumSimSubSteps = i; }

template<typename T>
bool SimPropForMultiPartMeshModel_HalfEdge< T >::SetODESolver ( TAPs::Enum::ODESolver  solverMethod  )  [inline]

Set the ODE solver.

Definition at line 257 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.cpp.

00259 {
00260     // Delete the current ODE solver
00261     if ( m_prODESolver )    delete m_prODESolver;
00262 
00263     bool result = true;
00264     //---------------------------------------------------------------
00265     // For Simulation
00266     switch ( solverMethod ) {
00267         case TAPs::Enum::EULER:
00268             if ( ( m_prODESolver = new MATH::ODESolverEuler<T>() ) == NULL ) {
00269                 result = false;
00270             }
00271             break;
00272         case TAPs::Enum::MIDPOINT:
00273             if ( ( m_prODESolver = new MATH::ODESolverMidpoint<T>() ) == NULL ) {
00274                 result = false;
00275             }
00276             break;
00277         case TAPs::Enum::RUNGE_KUTTA_4:
00278             if ( ( m_prODESolver = new MATH::ODESolverRungeKutta4<T>() ) == NULL ) {
00279                 result = false;
00280             }
00281             break;
00282         default:
00283             result = false;
00284             break;
00285     }
00286 
00287     if ( result ) {
00288         m_iStateSize = static_cast<int>( m_HEVertexPtrList.size() );
00289         int size = m_iStateSize * 6;
00290         m_prODESolver->SetSize( size );
00291         x0   = &xData_1;
00292         xEnd = &xData_2;
00293         x0->resize( size );
00294         xEnd->resize( size );
00295         StateToArray( &(*xEnd)[0] );
00296     }
00297     else {
00298         #ifdef TAPs_ENABLE_DEBUG
00299         std::cerr   << "ERROR => HETriMeshOneModelMultiParts Constructor:" 
00300                     << " Cannot allocate memory for an ODE solver!" 
00301                     << std::endl;
00302         #endif
00303         delete this;
00304     }
00305 
00306     return result;
00307 }

template<typename T>
void SimPropForMultiPartMeshModel_HalfEdge< T >::SetPredefinedTimeStep ( ts  )  [inline]

Set the predefined time step in sec.

Definition at line 86 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

00086 { m_tPredefinedTimeStep = ts; }

template<typename T>
int SimPropForMultiPartMeshModel_HalfEdge< T >::Size (  )  const [inline]

Definition at line 60 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

00060 { return m_iStateSize; }

template<typename T>
void SimPropForMultiPartMeshModel_HalfEdge< T >::StateToArray ( T *  dst  )  [inline, protected]

Definition at line 190 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.cpp.

00191 {
00192     for ( int i = 0; i < m_iStateSize; ++i ) {
00193         *(dst++) = m_HEVertexPtrList[i]->GetParticleRef()->GetPosition()[0];
00194         *(dst++) = m_HEVertexPtrList[i]->GetParticleRef()->GetPosition()[1];
00195         *(dst++) = m_HEVertexPtrList[i]->GetParticleRef()->GetPosition()[2];
00196         *(dst++) = m_HEVertexPtrList[i]->GetParticleRef()->GetVelocity()[0];
00197         *(dst++) = m_HEVertexPtrList[i]->GetParticleRef()->GetVelocity()[1];
00198         *(dst++) = m_HEVertexPtrList[i]->GetParticleRef()->GetVelocity()[2];
00199     }
00200 }

template<typename T>
std::string SimPropForMultiPartMeshModel_HalfEdge< T >::StrInfo (  )  const [inline, virtual]

Assignment operator.

Return this object info as a string.

Return this object info as a string

Reimplemented from SimPropForMultiPartMeshModel< T >.

Definition at line 101 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.cpp.

00102 {
00103     std::ostringstream ss;
00104     ss  << "SimPropForMultiPartMeshModel_HalfEdge<" << typeid(T).name() << "> ==>"
00105         << " Spring Stiffness(" << m_tKStiffness
00106         << ") Damper(" << m_tKDamper
00107         << ") Mass of Point (" << m_tPtMass
00108         << ") Collision Detection (";
00109         if ( m_bColDetOn )  ss << "On";
00110         else                ss << "Off";
00111     ss  << ") Simulation (";
00112         if ( m_bSimOn )     ss << "On";
00113         else                ss << "Off";
00114     ss  << ".\n";
00115     return ss.str();
00116 }

template<typename T>
void SimPropForMultiPartMeshModel_HalfEdge< T >::UpdateStateToArray (  )  [inline]

For update simulation.

Definition at line 95 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

00096     {
00097         if ( GetModelType() == TAPs::Enum::MODEL_DEFORM ) {
00098             StateToArray( &(*xEnd)[0] );
00099         }
00100     }


Friends And Related Function Documentation

template<typename T>
std::ostream& operator<< ( std::ostream &  output,
SimPropForMultiPartMeshModel_HalfEdge< T > const &  obj 
) [friend]

Output Operator <<.

Definition at line 23 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

00025     {
00026         output << obj.StrInfo();
00027         return output;
00028     }


Member Data Documentation

template<typename T>
std::vector< HEVertexPtrWithExtraInfo<T> * > SimPropForMultiPartMeshModel_HalfEdge< T >::m_HEVertexPtrList [protected]

list of half-edge vertices

Definition at line 145 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

template<typename T>
int SimPropForMultiPartMeshModel_HalfEdge< T >::m_iLimitStepCount [protected]

Limit step count.

Definition at line 161 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

template<typename T>
int SimPropForMultiPartMeshModel_HalfEdge< T >::m_iNumSimSubSteps [protected]

number of simulation sub-steps for moving from current time to next time

Definition at line 164 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

template<typename T>
int SimPropForMultiPartMeshModel_HalfEdge< T >::m_iStateSize [protected]

Mass Points (mesh vertices) where 6 = 3 positions + 3 velocities (for x,y,z)

Definition at line 160 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

ODE solver.

Definition at line 155 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

template<typename T>
T SimPropForMultiPartMeshModel_HalfEdge< T >::m_tPredefinedTimeStep [protected]

predefined time step in sec

Definition at line 163 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

template<typename T>
std::vector< SpringRef<T> * > SimPropForMultiPartMeshModel_HalfEdge< T >::m_vpSpringRef [protected]

Clear memory allocation.

Simulation for HalfEdge Model list of springs

Definition at line 144 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

template<typename T>
MATH::VectorSet<T>* SimPropForMultiPartMeshModel_HalfEdge< T >::x0 [protected]

pointer to x0 Data

Definition at line 156 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

template<typename T>
MATH::VectorSet<T> SimPropForMultiPartMeshModel_HalfEdge< T >::xData_1 [protected]

temp data with size of m_iStateSize * 6

Definition at line 158 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

template<typename T>
MATH::VectorSet<T> SimPropForMultiPartMeshModel_HalfEdge< T >::xData_2 [protected]

temp data with size of m_iStateSize * 6

Definition at line 159 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.

template<typename T>
MATH::VectorSet<T>* SimPropForMultiPartMeshModel_HalfEdge< T >::xEnd [protected]

pointer to xEnd Data

Definition at line 157 of file TAPsSimPropForMultiPartMeshModel_HalfEdge.hpp.


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

Generated on Mon Oct 13 11:45:56 2008 for TAPs by  doxygen 1.5.6