Defines | Functions

geom3d.c File Reference

#include <string.h>
#include <math.h>
#include "pknum.h"
#include "pkgeom.h"
Include dependency graph for geom3d.c:

Defines

#define eps   1.0e-6
#define tol   1.0e-15
#define tol   1.0e-15

Functions

void SetPoint3d (point3d *p, double x, double y, double z)
void Point3to2d (const point3d *P, point2d *p)
void Point2to3d (const point2d *p, double w, point3d *P)
void TransPoint3d (const trans3d *tr, const point3d *p, point3d *q)
void TransVector3d (const trans3d *tr, const vector3d *v, vector3d *w)
void TransContra3d (const trans3d *tri, const vector3d *v, vector3d *w)
void Trans3Point2d (const trans3d *tr, const point2d *p, point2d *q)
void Trans3Shiftd (trans3d *tr, double tx, double ty, double tz)
void Trans3Mirrord (trans3d *tr, vector3d *n)
void Trans3Rotd (trans3d *tr, byte j, byte k, double angle)
void Trans3RotVd (trans3d *tr, vector3d *v, double angle)
void Trans3Scaled (trans3d *tr, double sx, double sy, double sz)
void IdentTrans3d (trans3d *tr)
void CompTrans3d (trans3d *s, trans3d *t, trans3d *u)
void GeneralAffineTrans3d (trans3d *tr, vector3d *v1, vector3d *v2, vector3d *v3)
void ShiftTrans3d (trans3d *tr, double tx, double ty, double tz)
void MirrorTrans3d (trans3d *tr, vector3d *n)
void RotTrans3d (trans3d *tr, byte j, byte k, double angle)
void EulerRotTrans3d (trans3d *tr, double psi, double theta, double phi)
void FindRotVEulerd (const vector3d *v, double angle, double *psi, double *theta, double *phi)
void RotVTrans3d (trans3d *tr, vector3d *v, double angle)
void ScaleTrans3d (trans3d *tr, double sx, double sy, double sz)
boolean InvertTrans3d (trans3d *tr)
double TrimAngled (double angle)
void CompEulerRotd (double psi1, double theta1, double phi1, double psi2, double theta2, double phi2, double *psi, double *theta, double *phi)
void CompRotV3d (const vector3d *v1, double a1, const vector3d *v2, double a2, vector3d *v, double *a)
void MultVector3d (double a, const vector3d *v, vector3d *w)
void SubtractPoints3d (const point3d *p1, const point3d *p2, vector3d *v)
void AddVector3d (const point3d *p, const vector3d *v, point3d *q)
void AddVector3Md (const point3d *p, const vector3d *v, double t, point3d *q)
void InterPoint3d (const point3d *p1, const point3d *p2, double t, point3d *q)
void MidPoint3d (const point3d *p1, const point3d *p2, point3d *q)
void Interp3Vectors3d (const vector3d *p0, const vector3d *p1, const vector3d *p2, const double *coeff, vector3d *p)
void NormalizeVector3d (vector3d *v)
double DotProduct3d (const vector3d *v1, const vector3d *v2)
void CrossProduct3d (const vector3d *v1, const vector3d *v2, vector3d *v)
void AddCrossProduct3d (const vector3d *w, const vector3d *v1, const vector3d *v2, vector3d *v)
double det3d (const vector3d *v1, const vector3d *v2, const vector3d *v3)
void OrtVector3d (const vector3d *v1, const vector3d *v2, vector3d *v)
void ProjectPointOnLine3d (const point3d *p0, const point3d *p1, point3d *q)
void ProjectPointOnPlane3d (const point3d *p0, const point3d *p1, const point3d *p2, point3d *q)
double Point3Distanced (point3d *p, point3d *q)

Define Documentation

#define eps   1.0e-6
#define tol   1.0e-15
#define tol   1.0e-15

Function Documentation

void AddCrossProduct3d ( const vector3d w,
const vector3d v1,
const vector3d v2,
vector3d v 
)
void AddVector3d ( const point3d p,
const vector3d v,
point3d q 
)
void AddVector3Md ( const point3d p,
const vector3d v,
double  t,
point3d q 
)
void CompEulerRotd ( double  psi1,
double  theta1,
double  phi1,
double  psi2,
double  theta2,
double  phi2,
double *  psi,
double *  theta,
double *  phi 
)
void CompRotV3d ( const vector3d v1,
double  a1,
const vector3d v2,
double  a2,
vector3d v,
double *  a 
)
void CompTrans3d ( trans3d s,
trans3d t,
trans3d u 
)
void CrossProduct3d ( const vector3d v1,
const vector3d v2,
vector3d v 
)
double det3d ( const vector3d v1,
const vector3d v2,
const vector3d v3 
)
double DotProduct3d ( const vector3d v1,
const vector3d v2 
)
void EulerRotTrans3d ( trans3d tr,
double  psi,
double  theta,
double  phi 
)
void FindRotVEulerd ( const vector3d v,
double  angle,
double *  psi,
double *  theta,
double *  phi 
)
void GeneralAffineTrans3d ( trans3d tr,
vector3d v1,
vector3d v2,
vector3d v3 
)
void IdentTrans3d ( trans3d tr  ) 
void Interp3Vectors3d ( const vector3d p0,
const vector3d p1,
const vector3d p2,
const double *  coeff,
vector3d p 
)
void InterPoint3d ( const point3d p1,
const point3d p2,
double  t,
point3d q 
)
boolean InvertTrans3d ( trans3d tr  ) 
void MidPoint3d ( const point3d p1,
const point3d p2,
point3d q 
)
void MirrorTrans3d ( trans3d tr,
vector3d n 
)
void MultVector3d ( double  a,
const vector3d v,
vector3d w 
)
void NormalizeVector3d ( vector3d v  ) 
void OrtVector3d ( const vector3d v1,
const vector3d v2,
vector3d v 
)
void Point2to3d ( const point2d p,
double  w,
point3d P 
)
double Point3Distanced ( point3d p,
point3d q 
)
void Point3to2d ( const point3d P,
point2d p 
)
void ProjectPointOnLine3d ( const point3d p0,
const point3d p1,
point3d q 
)
void ProjectPointOnPlane3d ( const point3d p0,
const point3d p1,
const point3d p2,
point3d q 
)
void RotTrans3d ( trans3d tr,
byte  j,
byte  k,
double  angle 
)
void RotVTrans3d ( trans3d tr,
vector3d v,
double  angle 
)
void ScaleTrans3d ( trans3d tr,
double  sx,
double  sy,
double  sz 
)
void SetPoint3d ( point3d p,
double  x,
double  y,
double  z 
)
void ShiftTrans3d ( trans3d tr,
double  tx,
double  ty,
double  tz 
)
void SubtractPoints3d ( const point3d p1,
const point3d p2,
vector3d v 
)
void Trans3Mirrord ( trans3d tr,
vector3d n 
)
void Trans3Point2d ( const trans3d tr,
const point2d p,
point2d q 
)
void Trans3Rotd ( trans3d tr,
byte  j,
byte  k,
double  angle 
)
void Trans3RotVd ( trans3d tr,
vector3d v,
double  angle 
)
void Trans3Scaled ( trans3d tr,
double  sx,
double  sy,
double  sz 
)
void Trans3Shiftd ( trans3d tr,
double  tx,
double  ty,
double  tz 
)
void TransContra3d ( const trans3d tri,
const vector3d v,
vector3d w 
)
void TransPoint3d ( const trans3d tr,
const point3d p,
point3d q 
)
void TransVector3d ( const trans3d tr,
const vector3d v,
vector3d w 
)
double TrimAngled ( double  angle  )