doom3-gpl
Doom 3 GPL source release
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
idLCP_Symmetric Class Reference
Inheritance diagram for idLCP_Symmetric:
idLCP

Public Member Functions

virtual bool Solve (const idMatX &o_m, idVecX &o_x, const idVecX &o_b, const idVecX &o_lo, const idVecX &o_hi, const int *o_boxIndex)
 
- Public Member Functions inherited from idLCP
virtual ~idLCP (void)
 
virtual void SetMaxIterations (int max)
 
virtual int GetMaxIterations (void)
 

Private Member Functions

bool FactorClamped (void)
 
void SolveClamped (idVecX &x, const float *b)
 
void Swap (int i, int j)
 
void AddClamped (int r, bool useSolveCache)
 
void RemoveClamped (int r)
 
void CalcForceDelta (int d, float dir)
 
void CalcAccelDelta (int d)
 
void ChangeForce (int d, float step)
 
void ChangeAccel (int d, float step)
 
void GetMaxStep (int d, float dir, float &maxStep, int &limit, int &limitSide) const
 

Private Attributes

idMatX m
 
idVecX b
 
idVecX lo
 
idVecX hi
 
idVecX f
 
idVecX a
 
idVecX delta_f
 
idVecX delta_a
 
idMatX clamped
 
idVecX diagonal
 
idVecX solveCache1
 
idVecX solveCache2
 
int numUnbounded
 
int numClamped
 
int clampedChangeStart
 
float ** rowPtrs
 
intboxIndex
 
intside
 
intpermuted
 
bool padded
 

Additional Inherited Members

- Static Public Member Functions inherited from idLCP
static idLCPAllocSquare (void)
 
static idLCPAllocSymmetric (void)
 
- Protected Attributes inherited from idLCP
int maxIterations
 

Detailed Description

Definition at line 804 of file Lcp.cpp.

Member Function Documentation

void idLCP_Symmetric::AddClamped ( int  r,
bool  useSolveCache 
)
private

Definition at line 904 of file Lcp.cpp.

ID_INLINE void idLCP_Symmetric::CalcAccelDelta ( int  d)
private

Definition at line 1167 of file Lcp.cpp.

ID_INLINE void idLCP_Symmetric::CalcForceDelta ( int  d,
float  dir 
)
private

Definition at line 1138 of file Lcp.cpp.

ID_INLINE void idLCP_Symmetric::ChangeAccel ( int  d,
float  step 
)
private

Definition at line 1199 of file Lcp.cpp.

ID_INLINE void idLCP_Symmetric::ChangeForce ( int  d,
float  step 
)
private

Definition at line 1186 of file Lcp.cpp.

bool idLCP_Symmetric::FactorClamped ( void  )
private

Definition at line 845 of file Lcp.cpp.

void idLCP_Symmetric::GetMaxStep ( int  d,
float  dir,
float maxStep,
int limit,
int limitSide 
) const
private

Definition at line 1209 of file Lcp.cpp.

void idLCP_Symmetric::RemoveClamped ( int  r)
private

Definition at line 957 of file Lcp.cpp.

bool idLCP_Symmetric::Solve ( const idMatX o_m,
idVecX o_x,
const idVecX o_b,
const idVecX o_lo,
const idVecX o_hi,
const int o_boxIndex 
)
virtual

Implements idLCP.

Definition at line 1297 of file Lcp.cpp.

void idLCP_Symmetric::SolveClamped ( idVecX x,
const float b 
)
private

Definition at line 860 of file Lcp.cpp.

void idLCP_Symmetric::Swap ( int  i,
int  j 
)
private

Definition at line 879 of file Lcp.cpp.

Member Data Documentation

idVecX idLCP_Symmetric::a
private

Definition at line 812 of file Lcp.cpp.

idVecX idLCP_Symmetric::b
private

Definition at line 810 of file Lcp.cpp.

int* idLCP_Symmetric::boxIndex
private

Definition at line 822 of file Lcp.cpp.

idMatX idLCP_Symmetric::clamped
private

Definition at line 814 of file Lcp.cpp.

int idLCP_Symmetric::clampedChangeStart
private

Definition at line 820 of file Lcp.cpp.

idVecX idLCP_Symmetric::delta_a
private

Definition at line 813 of file Lcp.cpp.

idVecX idLCP_Symmetric::delta_f
private

Definition at line 813 of file Lcp.cpp.

idVecX idLCP_Symmetric::diagonal
private

Definition at line 815 of file Lcp.cpp.

idVecX idLCP_Symmetric::f
private

Definition at line 812 of file Lcp.cpp.

idVecX idLCP_Symmetric::hi
private

Definition at line 811 of file Lcp.cpp.

idVecX idLCP_Symmetric::lo
private

Definition at line 811 of file Lcp.cpp.

idMatX idLCP_Symmetric::m
private

Definition at line 809 of file Lcp.cpp.

int idLCP_Symmetric::numClamped
private

Definition at line 819 of file Lcp.cpp.

int idLCP_Symmetric::numUnbounded
private

Definition at line 818 of file Lcp.cpp.

bool idLCP_Symmetric::padded
private

Definition at line 825 of file Lcp.cpp.

int* idLCP_Symmetric::permuted
private

Definition at line 824 of file Lcp.cpp.

float** idLCP_Symmetric::rowPtrs
private

Definition at line 821 of file Lcp.cpp.

int* idLCP_Symmetric::side
private

Definition at line 823 of file Lcp.cpp.

idVecX idLCP_Symmetric::solveCache1
private

Definition at line 816 of file Lcp.cpp.

idVecX idLCP_Symmetric::solveCache2
private

Definition at line 817 of file Lcp.cpp.


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