#include <libgeom/Export.h>
#include <stdio.h>
Namespaces | |
namespace | geom |
Classes | |
struct | geom::ARRAY1D |
class | geom::GeomException |
struct | geom::ARRAY2D |
Defines | |
#define | M_PI 3.14159265358979323846 |
#define | M_PI_2 1.57079632679489661923 |
#define | EPSIL_ZERO 0.000001 |
#define | EPSIL_BIG_ZERO 0.00001 |
#define | VIJ(m, i, j, jmax) (*((m) + (i)*(jmax) + (j))) |
#define | AI(array1d, line) (*((array1d)->data + (line))) |
#define | AIJ(array2d, line, col) (*((array2d)->data + (col) + (line) * (array2d)->cols)) |
Typedefs | |
typedef LIBGEOM_REAL | geom::MatriX [4][4] |
typedef LIBGEOM_REAL | geom::MR3D [3][3] |
typedef LIBGEOM_REAL | geom::VT3D [3] |
typedef LIBGEOM_REAL | geom::VHOM [4] |
typedef MatriX | geom::MatriX_t |
typedef MR3D | geom::MR3D_t |
typedef VT3D | geom::VT3D_t |
typedef VHOM | geom::VHOM_t |
typedef LIBGEOM_REAL | geom::QUATERNION [4] |
Enumerations | |
enum | { geom::ATTRACTION_NULLE = 0, geom::ATTRACTION_COMPLETE = 1, geom::ATTRACTION_PARTIELLE = 2 } |
enum | { geom::GEOM_X_INDEX = 0, geom::GEOM_Y_INDEX = 1, geom::GEOM_Z_INDEX = 2, geom::GEOM_W_INDEX = 3 } |
Functions | |
double | geom::safe_acos (double f) |
double | geom::safe_asin (double f) |
LIBGEOM_DLL_EXPORT void | geom::matrix_idt_ (MatriX_t matrix) |
LIBGEOM_DLL_EXPORT void | geom::matrix_copy (const MatriX_t src, MatriX_t dst) |
LIBGEOM_DLL_EXPORT void | geom::matrix_compose (const MR3D_t mr, const VT3D_t vt, MatriX_t matrix) |
LIBGEOM_DLL_EXPORT void | geom::matrix_decompose (MR3D_t mr, VT3D_t vt, const MatriX_t matrix) |
void | geom::matrix_rotpart (MatriX_t In, MatriX_t Res) |
LIBGEOM_DLL_EXPORT void | geom::matrix_transpose (const MatriX_t a, MatriX_t at) |
LIBGEOM_DLL_EXPORT void | geom::matrix_mult_vhom (const MatriX_t a, const VHOM_t u, VHOM_t v) |
LIBGEOM_DLL_EXPORT void | geom::matrix_mult_vt3d (const MatriX_t a, const VT3D_t u, VT3D_t v) |
LIBGEOM_DLL_EXPORT void | geom::matrix_inverse (const MatriX_t matrix, MatriX_t matrix_inv) |
LIBGEOM_DLL_EXPORT void | geom::matrix_inverse_det (MatriX_t res, LIBGEOM_REAL determinant, const MatriX_t source) |
LIBGEOM_DLL_EXPORT LIBGEOM_REAL | geom::matrix_cofactor (const MatriX_t matrix, int i, int j) |
LIBGEOM_DLL_EXPORT LIBGEOM_REAL | geom::matrix_determinant (const MatriX_t matrix) |
LIBGEOM_DLL_EXPORT void | geom::matrix_mult (const MatriX_t ma, const MatriX_t mb, MatriX_t mc) |
void | geom::matrix_mult_opt (const MatriX ma, const MatriX mb, MatriX mc) |
LIBGEOM_DLL_EXPORT bool | geom::matrix_egalite (const MatriX_t a, const MatriX_t b) |
LIBGEOM_DLL_EXPORT int | geom::matrix_attraction_idt (MatriX_t a) |
LIBGEOM_DLL_EXPORT int | geom::matrix_proximite (const MatriX_t a, const MatriX_t b, LIBGEOM_REAL seuil_mr, LIBGEOM_REAL seuil_vt) |
void | geom::matrix_lerp (const MatriX_t a, const MatriX_t b, LIBGEOM_REAL u, MatriX result) |
LIBGEOM_DLL_EXPORT bool | geom::matrix_write (const MatriX_t m, FILE *f) |
LIBGEOM_DLL_EXPORT bool | geom::matrix_read (MatriX_t m, FILE *f) |
LIBGEOM_DLL_EXPORT void | geom::mr3d_idt_ (MR3D_t mr) |
LIBGEOM_DLL_EXPORT void | geom::mr3d_get (const MatriX_t matrix, MR3D_t a) |
LIBGEOM_DLL_EXPORT void | geom::mr3d_copy (const MR3D_t src, MR3D_t dst) |
LIBGEOM_DLL_EXPORT void | geom::mr3d_load (MatriX_t matrix, const MR3D_t a) |
LIBGEOM_DLL_EXPORT void | geom::mr3d_transpose (const MR3D_t a, MR3D_t at) |
LIBGEOM_DLL_EXPORT void | geom::mr3d_self_transpose (MR3D_t ma) |
LIBGEOM_DLL_EXPORT void | geom::mr3d_perm_circ (MR3D_t a, MR3D_t b) |
LIBGEOM_DLL_EXPORT void | geom::mr3d_opposite (MR3D_t a, MR3D_t b) |
LIBGEOM_DLL_EXPORT void | geom::mr3d_symtxy (MR3D_t a, MR3D_t b) |
LIBGEOM_DLL_EXPORT void | geom::mr3d_scale (const MR3D_t self, LIBGEOM_REAL scalar, MR3D_t res) |
LIBGEOM_DLL_EXPORT void | geom::mr3d_sub (const MR3D_t left, const MR3D_t right, MR3D_t res) |
LIBGEOM_DLL_EXPORT void | geom::mr3d_add (const MR3D_t left, const MR3D_t right, MR3D_t res) |
LIBGEOM_DLL_EXPORT void | geom::mr3d_mult (const MR3D_t a, const MR3D_t b, MR3D_t c) |
LIBGEOM_DLL_EXPORT void | geom::mr3d_mult_vt3d (const MR3D_t ma, const VT3D_t vu, VT3D_t vv) |
LIBGEOM_DLL_EXPORT void | geom::mr3d_from_axis_angle (MR3D_t mr, const VT3D_t axis) |
LIBGEOM_DLL_EXPORT void | geom::mr3d_to_axis_angle (VT3D_t axis, const MR3D_t mr) |
LIBGEOM_DLL_EXPORT double | geom::mr3d_axis_angle (const MR3D_t mr) |
LIBGEOM_DLL_EXPORT bool | geom::mr3d_egalite (const MR3D_t a, const MR3D_t b, LIBGEOM_REAL seuil_mr=EPSIL_MR3D) |
LIBGEOM_DLL_EXPORT int | geom::mr3d_attraction_idt (MR3D_t a, LIBGEOM_REAL seuil_mr) |
LIBGEOM_DLL_EXPORT int | geom::mr3d_attraction_ini (MR3D_t a, LIBGEOM_REAL seuil_mr) |
LIBGEOM_DLL_EXPORT void | geom::mr3d_conv_xyz_mob (const MR3D_t m, LIBGEOM_REAL *ang1, LIBGEOM_REAL *ang2, LIBGEOM_REAL *ang3) |
LIBGEOM_DLL_EXPORT void | geom::mr3d_conv_yxz_mob (const MR3D_t m, LIBGEOM_REAL *ang1, LIBGEOM_REAL *ang2, LIBGEOM_REAL *ang3) |
void | geom::mr3d_from_angle_seq_xyz (MR3D mx, LIBGEOM_REAL angX, LIBGEOM_REAL angY, LIBGEOM_REAL angZ) |
void | geom::mr3d_from_angle_seq_yxz (MR3D mx, LIBGEOM_REAL angY, LIBGEOM_REAL angX, LIBGEOM_REAL angZ) |
void | geom::mr3d_from_two_vectors (const VT3D_t a, const VT3D_t b, MR3D R) |
LIBGEOM_DLL_EXPORT void | geom::mr3d_reorthogonalize (MR3D_t R, int limit) |
LIBGEOM_DLL_EXPORT bool | geom::mr3d_write (const MR3D_t self, FILE *f) |
LIBGEOM_DLL_EXPORT bool | geom::mr3d_read (MR3D_t self, FILE *f) |
LIBGEOM_DLL_EXPORT void | geom::vt3d_get (const MatriX_t matrix, VT3D_t v) |
LIBGEOM_DLL_EXPORT void | geom::vt3d_load (MatriX_t matrix, const VT3D_t v) |
LIBGEOM_DLL_EXPORT void | geom::vt3d_copy (const VT3D_t src, VT3D_t dst) |
LIBGEOM_DLL_EXPORT void | geom::vt3d_set_null (VT3D_t v) |
LIBGEOM_DLL_EXPORT bool | geom::vt3d_normalize (const VT3D_t u, VT3D_t v) |
LIBGEOM_DLL_EXPORT void | geom::vt3d_cross (const VT3D_t u, const VT3D_t v, VT3D_t w) |
LIBGEOM_DLL_EXPORT void | geom::vt3d_scale (const VT3D_t scale, const VT3D_t u, VT3D_t v) |
LIBGEOM_DLL_EXPORT LIBGEOM_REAL | geom::vt3d_get_dot (const VT3D_t u, const VT3D_t v) |
LIBGEOM_DLL_EXPORT void | geom::vt3d_vhom (const VT3D_t vt3d, VHOM_t vhom) |
LIBGEOM_DLL_EXPORT void | geom::vhom_vt3d (const VHOM_t vhom, VT3D_t vt3d) |
LIBGEOM_DLL_EXPORT void | geom::vt3d_let (LIBGEOM_REAL x, LIBGEOM_REAL y, LIBGEOM_REAL z, VT3D_t w) |
LIBGEOM_DLL_EXPORT void | geom::vt3d_add (const VT3D_t u, const VT3D_t v, VT3D_t w) |
LIBGEOM_DLL_EXPORT void | geom::vt3d_sub (const VT3D_t u, const VT3D_t v, VT3D_t w) |
LIBGEOM_DLL_EXPORT void | geom::vt3d_mult (const VT3D_t u, const VT3D_t v, VT3D_t w) |
LIBGEOM_DLL_EXPORT void | geom::vt3d_div (const VT3D_t u, const VT3D_t v, VT3D_t w) |
LIBGEOM_DLL_EXPORT void | geom::vt3d_mults (const VT3D_t v, LIBGEOM_REAL s, VT3D_t w) |
LIBGEOM_DLL_EXPORT void | geom::vt3d_divs (const VT3D_t v, LIBGEOM_REAL s, VT3D_t w) |
LIBGEOM_DLL_EXPORT void | geom::vt3d_neg (const VT3D_t src, VT3D_t dest) |
LIBGEOM_DLL_EXPORT LIBGEOM_REAL | geom::vt3d_get_norm (const VT3D_t v) |
LIBGEOM_DLL_EXPORT LIBGEOM_REAL | geom::vt3d_get_norm2 (const VT3D_t v) |
LIBGEOM_DLL_EXPORT LIBGEOM_REAL | geom::vt3d_get_dist (const VT3D_t u, const VT3D_t v) |
LIBGEOM_DLL_EXPORT LIBGEOM_REAL | geom::vt3d_get_distptline (const VT3D_t p, const VT3D_t q, const VT3D_t n) |
LIBGEOM_DLL_EXPORT LIBGEOM_REAL | geom::vt3d_get_distptplane (const VT3D_t p, const VT3D_t q, const VT3D_t n) |
LIBGEOM_DLL_EXPORT void | geom::vt3d_rotv (const VT3D_t v, LIBGEOM_REAL sa, LIBGEOM_REAL ca, char k, VT3D_t w) |
LIBGEOM_DLL_EXPORT void | geom::vt3d_rotvect (const VT3D_t v, const VT3D_t c, VT3D_t k, LIBGEOM_REAL sa, LIBGEOM_REAL ca, VT3D_t w) |
LIBGEOM_DLL_EXPORT bool | geom::vt3d_egalite (const VT3D_t a, const VT3D_t b, LIBGEOM_REAL seuil_vt) |
LIBGEOM_DLL_EXPORT int | geom::vt3d_attraction_nul (VT3D_t a, LIBGEOM_REAL seuil_vt) |
bool | geom::vt3d_inside_polygon (VT3D point, VT3D *p, int N) |
void | geom::vt3d_lerp (const VT3D p1, const VT3D p2, LIBGEOM_REAL u, VT3D result) |
void | geom::vt3d_slerp (const VT3D p1, const VT3D p2, LIBGEOM_REAL u, VT3D result) |
LIBGEOM_DLL_EXPORT bool | geom::vt3d_write (const VT3D_t self, FILE *f) |
LIBGEOM_DLL_EXPORT bool | geom::vt3d_read (VT3D_t self, FILE *f) |
void | geom::vt3d_rotate_around_axis_angle (const VT3D axis_angle, const VT3D v_in, VT3D v_out) |
double * | geom::vtn_creation (int n) |
void | geom::vtn_destr (double *p) |
void | geom::vtn_nul (double *p, int n) |
double | geom::vtn_norm (const double *p, int n) |
double | geom::vtn_anorm (const double *p, int n) |
void | geom::vtn_copy (const double *psrc, double *pdst, int n) |
void | geom::vtn_add (const double *p1, const double *p2, double *pdst, int n) |
void | geom::vtn_sub (const double *p1, const double *p2, double *pdst, int n) |
void | geom::vtn_mults (const double *psrc, double *pdst, int n, double alpha) |
double | geom::vtn_dot (const double *p1, const double *p2, int n) |
double | geom::vtn_inv (const double *p, double *p_inv, int n) |
double * | geom::matmxn_creation (int lmax, int cmax) |
void | geom::matmxn_destr (double *p) |
void | geom::matmxn_copy (const double *a, double *b, int lmax, int cmax) |
void | geom::matmxn_nul (double *p, int lmax, int cmax) |
void | geom::matmxn_idt (double *p, int lmax, int cmax) |
void | geom::matmxn_mult (const double *a, const double *b, double *c, int imax, int jmax, int kmax) |
void | geom::matmxn_mult_vtn (const double *a, const double *b, double *c, int lmax, int cmax) |
void | geom::matmxn_write (double *d, int width, int height, FILE *f) |
void | geom::matmxn_transpose (const double *src, double *dest, int src_width, int src_height) |
bool | geom::matmxn_pseudo_inverse (double *m, int lmax, int cmax, double *mp) |
void | geom::matmxn_damped_least_square_inverse (double *j_inv, double *j_mat, int j_width, int j_height, double damping) |
void | geom::matmxn_svdcmp (double **a, int m, int n, double *w, double **v) |
void | geom::quat_set (QUATERNION self, LIBGEOM_REAL w, LIBGEOM_REAL x, LIBGEOM_REAL y, LIBGEOM_REAL z) |
void | geom::quat_set_null (QUATERNION self) |
void | geom::quat_set_unit (QUATERNION self) |
void | geom::quat_assign (QUATERNION self, const QUATERNION newQuat) |
void | geom::quat_copy (const QUATERNION src, QUATERNION dest) |
void | geom::quat_get_inv (const QUATERNION self, QUATERNION inv) |
void | geom::quat_get_conj (const QUATERNION self, QUATERNION conj) |
LIBGEOM_REAL | geom::quat_get_norm (const QUATERNION self) |
LIBGEOM_REAL | geom::quat_get_distance (const QUATERNION left, const QUATERNION right) |
LIBGEOM_REAL | geom::quat_get_sdistance (const QUATERNION left, const QUATERNION right) |
void | geom::quat_neg (QUATERNION self) |
void | geom::quat_normalize (QUATERNION self) |
LIBGEOM_REAL | geom::quat_dot (const QUATERNION left, const QUATERNION right) |
void | geom::quat_pow (const QUATERNION self, LIBGEOM_REAL alpha, QUATERNION result) |
void | geom::quat_exp (const QUATERNION self, QUATERNION result) |
void | geom::quat_ln (const QUATERNION self, QUATERNION result) |
void | geom::quat_mults (const QUATERNION self, LIBGEOM_REAL s, QUATERNION result) |
void | geom::quat_mult (const QUATERNION left, const QUATERNION right, QUATERNION result) |
void | geom::quat_sub (const QUATERNION left, const QUATERNION right, QUATERNION result) |
void | geom::quat_add (const QUATERNION left, const QUATERNION right, QUATERNION result) |
void | geom::quat_slerp (const QUATERNION left, const QUATERNION right, LIBGEOM_REAL u, QUATERNION result) |
void | geom::quat_dump (const QUATERNION self) |
void | geom::quat_from_axis (QUATERNION self, const VT3D axis, LIBGEOM_REAL angle) |
void | geom::quat_from_axis_angle (QUATERNION q, const VT3D axis_angle) |
void | geom::quat_to_axis_angle (const QUATERNION quat, VT3D axis) |
void | geom::quat_from_matrix (const MatriX m, QUATERNION quat) |
void | geom::quat_to_matrix (const QUATERNION self, MatriX result) |
void | geom::quat_from_mr3d (const MR3D m, QUATERNION quat) |
void | geom::quat_to_mr3d (const QUATERNION self, MR3D result) |
void | geom::quat_from_two_vectors (const VT3D v1, const VT3D v2, QUATERNION q) |
void | geom::quat_from_swing (QUATERNION q, const LIBGEOM_REAL swing[2]) |
void | geom::quat_from_swing_and_twist (QUATERNION q, const LIBGEOM_REAL swing[2], LIBGEOM_REAL twist) |
void | geom::quat_to_swing_and_twist (const QUATERNION q, LIBGEOM_REAL swing[2], LIBGEOM_REAL *twist) |
ARRAY1D * | geom::array1d_creation (int lines) |
void | geom::array1d_destroy (ARRAY1D *array1d) |
void | geom::array1d_nul (ARRAY1D *array1d) |
double | geom::array1d_norm (ARRAY1D *array1d) |
double | geom::array1d_anorm (ARRAY1D *array1d) |
void | geom::array1d_copy (ARRAY1D *src, ARRAY1D *dest) |
void | geom::array1d_add (ARRAY1D *src_left, ARRAY1D *src_right, ARRAY1D *dest) |
void | geom::array1d_sub (ARRAY1D *src_left, ARRAY1D *src_right, ARRAY1D *dest) |
void | geom::array1d_mults (ARRAY1D *src, ARRAY1D *dest, double factor) |
double | geom::array1d_dot (ARRAY1D *src1, ARRAY1D *src2) |
double | geom::array1d_inv (ARRAY1D *src, ARRAY1D *dest) |
void | geom::array1d_write (ARRAY1D *a, FILE *file) |
ARRAY2D * | geom::array2d_creation (int lines, int cols) |
void | geom::array2d_destroy (ARRAY2D *array2d) |
int | geom::array2d_same_size (ARRAY2D *a, ARRAY2D *b) |
void | geom::array2d_nul (ARRAY2D *array2d) |
void | geom::array2d_idt (ARRAY2D *array2d) |
void | geom::array2d_copy (ARRAY2D *src, ARRAY2D *dest) |
void | geom::array2d_mult (ARRAY2D *a, ARRAY2D *b, ARRAY2D *dest) |
void | geom::array2d_add (ARRAY2D *a, ARRAY2D *b, ARRAY2D *dest) |
void | geom::array2d_sub (ARRAY2D *a, ARRAY2D *b, ARRAY2D *dest) |
void | geom::array2d_mult_array1d (ARRAY2D *array2d, ARRAY1D *array1d, ARRAY1D *dest) |
void | geom::array2d_scale (ARRAY2D *src, float scalar, ARRAY2D *dest) |
void | geom::array2d_pseudo_inverse (ARRAY2D *src, ARRAY2D *dest) |
void | geom::array2d_damped_least_square_inverse (ARRAY2D *j_inv, ARRAY2D *j_mat, double damping) |
void | geom::array2d_compute_LS_and_DLS_inverse (ARRAY2D *LS_inv, ARRAY2D *DLS_inv, ARRAY2D *j_mat, ARRAY1D *task, double damping) |
void | geom::array2d_write (ARRAY2D *a, FILE *file) |
void | geom::array2d_set_column (ARRAY2D *array2d, int column, double value) |
void | geom::array2d_set_line (ARRAY2D *array2d, int line, double value) |
void | geom::array2d_transpose (ARRAY2D *src, ARRAY2D *dest) |
int | geom::polynomial_solve_quadric (double c[3], double s[2]) |
int | geom::polynomial_solve_cubic (double c[4], double s[3]) |
int | geom::polynomial_solve_quartic (double c[5], double s[4]) |
Variables | |
LIBGEOM_DLL_EXPORT const float | geom::EPSIL_MR3D |
LIBGEOM_DLL_EXPORT const float | geom::EPSIL_VT3D |
#define AI | ( | array1d, | |||
line | ) | (*((array1d)->data + (line))) |
Macro to access an element in a ARRAY1D by its index.
#define AIJ | ( | array2d, | |||
line, | |||||
col | ) | (*((array2d)->data + (col) + (line) * (array2d)->cols)) |
Macro to access an element in a ARRAY2D by its two indices.
#define EPSIL_BIG_ZERO 0.00001 |
#define EPSIL_ZERO 0.000001 |
#define M_PI 3.14159265358979323846 |
#define M_PI_2 1.57079632679489661923 |
#define VIJ | ( | m, | |||
i, | |||||
j, | |||||
jmax | ) | (*((m) + (i)*(jmax) + (j))) |