Blender V4.5
#include <Eigen/Core>
#include <Eigen/Geometry>
#include <algorithm>
#include <cmath>

Go to the source code of this file.

Functions

static bool FuzzyZero (double x)
static double Clamp (const double x, const double min, const double max)
static Eigen::Matrix3d CreateMatrix (double xx, double xy, double xz, double yx, double yy, double yz, double zx, double zy, double zz)
static Eigen::Matrix3d RotationMatrix (double sine, double cosine, int axis)
static Eigen::Matrix3d RotationMatrix (double angle, int axis)
static double EulerAngleFromMatrix (const Eigen::Matrix3d &R, int axis)
static double safe_acos (double f)
static Eigen::Vector3d normalize (const Eigen::Vector3d &v)
static double angle (const Eigen::Vector3d &v1, const Eigen::Vector3d &v2)
static double ComputeTwist (const Eigen::Matrix3d &R)
static Eigen::Matrix3d ComputeTwistMatrix (double tau)
static void RemoveTwist (Eigen::Matrix3d &R)
static Eigen::Vector3d SphericalRangeParameters (const Eigen::Matrix3d &R)
static Eigen::Matrix3d ComputeSwingMatrix (double ax, double az)
static Eigen::Vector3d MatrixToAxisAngle (const Eigen::Matrix3d &R)
static bool EllipseClamp (double &ax, double &az, const double *amin, const double *amax)

Variables

static const double IK_EPSILON = 1e-20

Function Documentation

◆ angle()

double angle ( const Eigen::Vector3d & v1,
const Eigen::Vector3d & v2 )
inlinestatic

Definition at line 117 of file IK_Math.h.

References angle(), safe_acos(), and v2.

◆ Clamp()

double Clamp ( const double x,
const double min,
const double max )
inlinestatic

Definition at line 30 of file IK_Math.h.

References Clamp(), max, min, and x.

◆ ComputeSwingMatrix()

Eigen::Matrix3d ComputeSwingMatrix ( double ax,
double az )
inlinestatic

Definition at line 173 of file IK_Math.h.

References ComputeSwingMatrix(), and sqrt.

Referenced by ComputeSwingMatrix().

◆ ComputeTwist()

double ComputeTwist ( const Eigen::Matrix3d & R)
inlinestatic

Definition at line 122 of file IK_Math.h.

References ComputeTwist(), and R.

Referenced by ComputeTwist(), RemoveTwist(), and SphericalRangeParameters().

◆ ComputeTwistMatrix()

Eigen::Matrix3d ComputeTwistMatrix ( double tau)
inlinestatic

Definition at line 133 of file IK_Math.h.

References ComputeTwistMatrix(), and RotationMatrix().

Referenced by ComputeTwistMatrix(), and RemoveTwist().

◆ CreateMatrix()

Eigen::Matrix3d CreateMatrix ( double xx,
double xy,
double xz,
double yx,
double yy,
double yz,
double zx,
double zy,
double zz )
inlinestatic

Definition at line 35 of file IK_Math.h.

References CreateMatrix(), and M.

Referenced by CreateMatrix(), and RotationMatrix().

◆ EllipseClamp()

bool EllipseClamp ( double & ax,
double & az,
const double * amin,
const double * amax )
inlinestatic

Definition at line 199 of file IK_Math.h.

References EllipseClamp(), FuzzyZero(), sqrt, x, and z().

Referenced by EllipseClamp().

◆ EulerAngleFromMatrix()

double EulerAngleFromMatrix ( const Eigen::Matrix3d & R,
int axis )
inlinestatic

Definition at line 74 of file IK_Math.h.

References EulerAngleFromMatrix(), IK_EPSILON, R, and sqrt.

Referenced by EulerAngleFromMatrix().

◆ FuzzyZero()

bool FuzzyZero ( double x)
inlinestatic

Definition at line 25 of file IK_Math.h.

References fabs(), FuzzyZero(), IK_EPSILON, and x.

Referenced by EllipseClamp(), FuzzyZero(), MatrixToAxisAngle(), and normalize().

◆ MatrixToAxisAngle()

Eigen::Vector3d MatrixToAxisAngle ( const Eigen::Matrix3d & R)
inlinestatic

Definition at line 185 of file IK_Math.h.

References FuzzyZero(), l, MatrixToAxisAngle(), R, and safe_acos().

Referenced by MatrixToAxisAngle().

◆ normalize()

Eigen::Vector3d normalize ( const Eigen::Vector3d & v)
inlinestatic

Definition at line 109 of file IK_Math.h.

References FuzzyZero(), len(), normalize, and v.

◆ RemoveTwist()

void RemoveTwist ( Eigen::Matrix3d & R)
inlinestatic

Definition at line 138 of file IK_Math.h.

References ComputeTwist(), ComputeTwistMatrix(), R, RemoveTwist(), and T.

Referenced by RemoveTwist().

◆ RotationMatrix() [1/2]

Eigen::Matrix3d RotationMatrix ( double angle,
int axis )
inlinestatic

Definition at line 69 of file IK_Math.h.

References angle(), cos, RotationMatrix(), and sin.

◆ RotationMatrix() [2/2]

Eigen::Matrix3d RotationMatrix ( double sine,
double cosine,
int axis )
inlinestatic

Definition at line 58 of file IK_Math.h.

References CreateMatrix(), and RotationMatrix().

Referenced by ComputeTwistMatrix(), RotationMatrix(), and RotationMatrix().

◆ safe_acos()

double safe_acos ( double f)
inlinestatic

Definition at line 97 of file IK_Math.h.

References acos, M_PI, and safe_acos().

Referenced by angle(), MatrixToAxisAngle(), and safe_acos().

◆ SphericalRangeParameters()

Eigen::Vector3d SphericalRangeParameters ( const Eigen::Matrix3d & R)
inlinestatic

Definition at line 150 of file IK_Math.h.

References ComputeTwist(), fabs(), IK_EPSILON, num, R, SphericalRangeParameters(), and sqrt.

Referenced by SphericalRangeParameters().

Variable Documentation

◆ IK_EPSILON

const double IK_EPSILON = 1e-20
static

Definition at line 23 of file IK_Math.h.

Referenced by EulerAngleFromMatrix(), FuzzyZero(), and SphericalRangeParameters().