3Depict
|
#include "../config.h"
#include "common/basics.h"
#include "common/stringFuncs.h"
#include <sys/time.h>
#include <gsl/gsl_blas.h>
Macros | |
#define | EQ_TOL(f, g) (fabs( (f) - (g)) < sqrtf(std::numeric_limits<float>::epsilon())) |
Functions | |
std::ostream & | operator<< (std::ostream &stream, const Point3D &pt) |
void | quat_mult_no_second_a (Quaternion *result, const Quaternion *q1, const Quaternion *q2) |
void | quat_pointmult (Point3f *result, const Quaternion *q1, const Quaternion *q2) |
void | quat_rot (Point3D &p, const Point3D &r, float angle) |
void | quat_rot (Point3f *point, const Point3f *rotVec, float angle) |
void | quat_rot_array (Point3D *pointArr, unsigned int n, const Point3f *rotVec, float angle) |
void | quat_rot_array (Point3f *pointArr, unsigned int n, const Point3f *rotVec, float angle) |
void | quat_get_rot_quat (const Point3f *rotVec, float angle, Quaternion *rotQuat) |
void | quat_rot_apply_quat (Point3f *point, const Quaternion *rotQuat) |
void | quat_invert (Quaternion *quat) |
double | det3by3 (const double *ptArray) |
double | pyramidVol (const Point3D *planarPts, const Point3D &apex) |
void | computeRotationMatrix (const Point3D &ur1, const Point3D &ur2, const Point3D &r1, const Point3D &r2, gsl_matrix *m) |
Use the TRIAD algorithm to compute the matrix that transforms orthogonal unit vectors. More... | |
void | rotateByMatrix (const vector< Point3D > &vpts, const gsl_matrix *m, vector< Point3D > &r) |
float | clockwiseAngle (const Point3D &v1, const Point3D &v2, const Point3D &normal) |
Point3D | generatePointInTri (const Point3D &origin, const Point3D &sideV1, const Point3D &sideV2, RandNumGen &rng) |
void | scatterPointsInPolygon (const vector< Point3D > &polygon, const Point3D &normal, float scatterDensity, RandNumGen &rng, vector< Point3D > &result) |
void | rotatePointsToXYPlane (vector< Point3D > &pts, const Point3D &normal, const Point3D &origin, Quaternion &q) |
void | applyQuaternion (vector< Point3D > &pts, Quaternion &q) |
Variables | |
const int | MBIG = std::numeric_limits<int>::max() |
size_t | maximumLinearTable [] |
#define EQ_TOL | ( | f, | |
g | |||
) | (fabs( (f) - (g)) < sqrtf(std::numeric_limits<float>::epsilon())) |
void applyQuaternion | ( | vector< Point3D > & | pts, |
Quaternion & | q | ||
) |
References clockwiseAngle(), EQ_TOL, Point3f::fx, Point3f::fy, Point3f::fz, M_PI, Point3D::Point3D(), quat_rot_apply_quat(), and TEST.
References Point3D::angle(), Point3D::crossProd(), Point3D::dotProd(), and M_PI.
Referenced by applyQuaternion(), BoundCube::getPlaneIntersectVertices(), and ilog2().
void computeRotationMatrix | ( | const Point3D & | ur1, |
const Point3D & | ur2, | ||
const Point3D & | r1, | ||
const Point3D & | r2, | ||
gsl_matrix * | m | ||
) |
Use the TRIAD algorithm to compute the matrix that transforms orthogonal unit vectors.
References ASSERT, Point3D::crossProd(), and Point3D::sqrMag().
Referenced by ilog2().
double det3by3 | ( | const double * | ptArray | ) |
Point3D generatePointInTri | ( | const Point3D & | origin, |
const Point3D & | sideV1, | ||
const Point3D & | sideV2, | ||
RandNumGen & | rng | ||
) |
References RandNumGen::genUniformDev().
Referenced by scatterPointsInPolygon().
std::ostream& operator<< | ( | std::ostream & | stream, |
const Point3D & | pt | ||
) |
References det3by3().
Referenced by GetReducedHullPts(), and LinearFeedbackShiftReg::setState().
void quat_get_rot_quat | ( | const Point3f * | rotVec, |
float | angle, | ||
Quaternion * | rotQuat | ||
) |
References Quaternion::a, ASSERT, Quaternion::b, Quaternion::c, Quaternion::d, Point3f::fx, Point3f::fy, and Point3f::fz.
Referenced by TransformFilter::refresh(), rotatePointsToXYPlane(), and CropHelper::runFilter().
void quat_invert | ( | Quaternion * | quat | ) |
References Quaternion::b, Quaternion::c, and Quaternion::d.
void quat_mult_no_second_a | ( | Quaternion * | result, |
const Quaternion * | q1, | ||
const Quaternion * | q2 | ||
) |
References Quaternion::a, Quaternion::b, Quaternion::c, and Quaternion::d.
Referenced by quat_rot(), quat_rot_apply_quat(), and quat_rot_array().
void quat_pointmult | ( | Point3f * | result, |
const Quaternion * | q1, | ||
const Quaternion * | q2 | ||
) |
References Quaternion::a, Quaternion::b, Quaternion::c, Quaternion::d, Point3f::fx, Point3f::fy, and Point3f::fz.
Referenced by quat_rot(), quat_rot_apply_quat(), and quat_rot_array().
References Point3f::fx, Point3f::fy, Point3f::fz, and quat_rot().
Referenced by DrawGLText::draw(), drawCone(), BoxCropEffect::enable(), DrawGLText::getBoundingBox(), CameraLookAt::move(), Camera::pivot(), CameraLookAt::pivot(), quat_rot(), and CameraLookAt::roll().
References Quaternion::a, ASSERT, Quaternion::b, Quaternion::c, Quaternion::d, Point3f::fx, Point3f::fy, Point3f::fz, quat_mult_no_second_a(), and quat_pointmult().
void quat_rot_apply_quat | ( | Point3f * | point, |
const Quaternion * | rotQuat | ||
) |
References Quaternion::b, Quaternion::c, Quaternion::d, Point3f::fx, Point3f::fy, Point3f::fz, quat_mult_no_second_a(), and quat_pointmult().
Referenced by applyQuaternion(), TransformFilter::refresh(), rotatePointsToXYPlane(), and CropHelper::runFilter().
References Point3f::fx, Point3f::fy, Point3f::fz, and quat_rot_array().
Referenced by DrawGLText::getBoundingBox(), and quat_rot_array().
References Quaternion::a, ASSERT, Quaternion::b, Quaternion::c, Quaternion::d, Point3f::fx, Point3f::fy, Point3f::fz, quat_mult_no_second_a(), and quat_pointmult().
void rotatePointsToXYPlane | ( | vector< Point3D > & | pts, |
const Point3D & | normal, | ||
const Point3D & | origin, | ||
Quaternion & | q | ||
) |
References Point3D::angle(), Point3D::crossProd(), Point3f::fx, Point3f::fy, Point3f::fz, Point3D::normalise(), Point3D::Point3D(), quat_get_rot_quat(), quat_rot_apply_quat(), and Point3D::sqrt().
Referenced by ilog2().
void scatterPointsInPolygon | ( | const vector< Point3D > & | polygon, |
const Point3D & | normal, | ||
float | scatterDensity, | ||
RandNumGen & | rng, | ||
vector< Point3D > & | result | ||
) |
References Point3D::angle(), ASSERT, Point3D::centroid(), generatePointInTri(), RandNumGen::genUniformDev(), Point3D::mag(), and Point3D::sqrt().
Referenced by ilog2(), and VoxeliseFilter::refresh().
size_t maximumLinearTable[] |
Referenced by LinearFeedbackShiftReg::setMaskPeriod(), and LinearFeedbackShiftReg::verifyTable().
const int MBIG = std::numeric_limits<int>::max() |
Referenced by RandNumGen::genInt(), RandNumGen::genUniformDev(), and RandNumGen::initialise().