Blender V2.61 - r43446
Classes | Functions

IK_Solver.cpp File Reference

#include "../extern/IK_solver.h"
#include "IK_QJacobianSolver.h"
#include "IK_QSegment.h"
#include "IK_QTask.h"
#include <list>

Go to the source code of this file.

Classes

class  IK_QSolver

Functions

IK_QSegmentCreateSegment (int flag, bool translate)
IK_SegmentIK_CreateSegment (int flag)
void IK_FreeSegment (IK_Segment *seg)
void IK_SetParent (IK_Segment *seg, IK_Segment *parent)
void IK_SetTransform (IK_Segment *seg, float start[3], float rest[][3], float basis[][3], float length)
void IK_SetLimit (IK_Segment *seg, IK_SegmentAxis axis, float lmin, float lmax)
void IK_SetStiffness (IK_Segment *seg, IK_SegmentAxis axis, float stiffness)
void IK_GetBasisChange (IK_Segment *seg, float basis_change[][3])
void IK_GetTranslationChange (IK_Segment *seg, float *translation_change)
IK_SolverIK_CreateSolver (IK_Segment *root)
void IK_FreeSolver (IK_Solver *solver)
void IK_SolverAddGoal (IK_Solver *solver, IK_Segment *tip, float goal[3], float weight)
void IK_SolverAddGoalOrientation (IK_Solver *solver, IK_Segment *tip, float goal[][3], float weight)
void IK_SolverSetPoleVectorConstraint (IK_Solver *solver, IK_Segment *tip, float goal[3], float polegoal[3], float poleangle, int getangle)
float IK_SolverGetPoleAngle (IK_Solver *solver)
void IK_SolverAddCenterOfMass (IK_Solver *solver, IK_Segment *root, float goal[3], float weight)
int IK_Solve (IK_Solver *solver, float tolerance, int max_iterations)

Detailed Description

Definition in file IK_Solver.cpp.


Function Documentation

IK_QSegment* CreateSegment ( int  flag,
bool  translate 
)

Definition at line 53 of file IK_Solver.cpp.

References IK_XDOF, IK_YDOF, IK_ZDOF, and NULL.

Referenced by IK_CreateSegment().

IK_Segment* IK_CreateSegment ( int  flag)

Definition at line 107 of file IK_Solver.cpp.

References CreateSegment(), NULL, rot, IK_QSegment::SetComposite(), and IK_QSegment::SetParent().

Referenced by execute_posetree().

IK_Solver* IK_CreateSolver ( IK_Segment root)

Definition at line 260 of file IK_Solver.cpp.

References NULL, and IK_QSolver::root.

Referenced by execute_posetree().

void IK_FreeSegment ( IK_Segment seg)

Definition at line 132 of file IK_Solver.cpp.

References IK_QSegment::Composite().

Referenced by execute_posetree().

void IK_FreeSolver ( IK_Solver solver)

Definition at line 271 of file IK_Solver.cpp.

References NULL, and IK_QSolver::tasks.

Referenced by execute_posetree().

void IK_GetBasisChange ( IK_Segment seg,
float  basis_change[][3] 
)
void IK_GetTranslationChange ( IK_Segment seg,
float *  translation_change 
)
void IK_SetLimit ( IK_Segment seg,
IK_SegmentAxis  axis,
float  lmin,
float  lmax 
)
void IK_SetParent ( IK_Segment seg,
IK_Segment parent 
)

Definition at line 141 of file IK_Solver.cpp.

References IK_QSegment::Composite(), and IK_QSegment::SetParent().

Referenced by execute_posetree().

void IK_SetStiffness ( IK_Segment seg,
IK_SegmentAxis  axis,
float  stiffness 
)
void IK_SetTransform ( IK_Segment seg,
float  start[3],
float  rest[][3],
float  basis[][3],
float  length 
)

Definition at line 152 of file IK_Solver.cpp.

References IK_QSegment::Composite(), and IK_QSegment::SetTransform().

Referenced by execute_posetree().

int IK_Solve ( IK_Solver solver,
float  tolerance,
int  max_iterations 
)
void IK_SolverAddCenterOfMass ( IK_Solver solver,
IK_Segment root,
float  goal[3],
float  weight 
)

Definition at line 350 of file IK_Solver.cpp.

References NULL, IK_QTask::SetWeight(), and IK_QSolver::tasks.

void IK_SolverAddGoal ( IK_Solver solver,
IK_Segment tip,
float  goal[3],
float  weight 
)

Definition at line 286 of file IK_Solver.cpp.

References IK_QSegment::Composite(), NULL, IK_QTask::SetWeight(), and IK_QSolver::tasks.

Referenced by execute_posetree().

void IK_SolverAddGoalOrientation ( IK_Solver solver,
IK_Segment tip,
float  goal[][3],
float  weight 
)

Definition at line 304 of file IK_Solver.cpp.

References IK_QSegment::Composite(), NULL, rot, IK_QTask::SetWeight(), and IK_QSolver::tasks.

Referenced by execute_posetree().

float IK_SolverGetPoleAngle ( IK_Solver solver)

Definition at line 340 of file IK_Solver.cpp.

References IK_QJacobianSolver::GetPoleAngle(), NULL, and IK_QSolver::solver.

Referenced by execute_posetree().

void IK_SolverSetPoleVectorConstraint ( IK_Solver solver,
IK_Segment tip,
float  goal[3],
float  polegoal[3],
float  poleangle,
int  getangle 
)

Definition at line 325 of file IK_Solver.cpp.

References NULL, IK_QJacobianSolver::SetPoleVectorConstraint(), and IK_QSolver::solver.

Referenced by execute_posetree().