|
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().
1.8.13