Workspace 6.21.5
Namespaces | Functions
projectintersect.h File Reference

Provides 3D analytic geometry operations for projections and intersections. More...

#include "Workspace/Application/LanguageUtils/errorchecks.h"
#include "Workspace/Application/LanguageUtils/mathdefs.h"
#include "vector3d.h"
Include dependency graph for projectintersect.h:
This graph shows which files directly or indirectly include this file:

Namespaces

namespace  CSIRO
 Top level namespace for all Workspace code.
 
namespace  CSIRO::Mesh
 Mesh model data structures.
 

Functions

double discriminant (double a1, double b1, double a2, double b2)
 
double Discriminant (double a1, double b1, double a2, double b2)
 
Vector3d getNodeProjectedToLine (const Vector3d &p, const Vector3d &v0, const Vector3d &v1)
 
Vector3d GetNodeProjectedToLine (const Vector3d &p, const Vector3d &v0, const Vector3d &v1)
 
Vector3d getNodeProjectedToLineSegment (const Vector3d &p, const Vector3d &v0, const Vector3d &v1)
 
Vector3d GetNodeProjectedToLineSegment (const Vector3d &p, const Vector3d &v0, const Vector3d &v1)
 
bool getPlanesIntersect (const Vector3d &r0, const Vector3d &n0, const Vector3d &r1, const Vector3d &n1, Vector3d &p, Vector3d &v)
 
bool GetPlanesIntersect (const Vector3d &r0, const Vector3d &n0, const Vector3d &r1, const Vector3d &n1, Vector3d &p, Vector3d &v)
 
bool linePlaneIntersect (const Vector3d &n0, const Vector3d &n1, const Vector3d &pPoint, const Vector3d &pNormal, Vector3d &intersect)
 
bool LinePlaneIntersect (const Vector3d &n0, const Vector3d &n1, const Vector3d &pPoint, const Vector3d &pNormal, Vector3d &intersect)
 
bool lineSegmentsIntersect (const Vector3d &a0, const Vector3d &a1, const Vector3d &b0, const Vector3d &b1)
 
bool LineSegmentsIntersect (const Vector3d &a0, const Vector3d &a1, const Vector3d &b0, const Vector3d &b1)
 
bool lineSegmentsIntersect (const Vector3d &a0, const Vector3d &a1, const Vector3d &b0, const Vector3d &b1, double &tA, double &tB)
 
bool LineSegmentsIntersect (const Vector3d &a0, const Vector3d &a1, const Vector3d &b0, const Vector3d &b1, double &tA, double &tB)
 
void projectLineToPlane (Vector3d &n0, Vector3d &n1, const Vector3d &pPoint, const Vector3d &pNormal)
 
void ProjectLineToPlane (Vector3d &n0, Vector3d &n1, const Vector3d &pPoint, const Vector3d &pNormal)
 
int projectPointToLineSegment (Vector3d &p, const Vector3d &v0, const Vector3d &v1)
 
int ProjectPointToLineSegment (Vector3d &p, const Vector3d &v0, const Vector3d &v1)
 
Vector3d projectPointToPlane (const Vector3d &p0, const Vector3d &pPoint, const Vector3d &pNormal)
 
Vector3d ProjectPointToPlane (const Vector3d &p0, const Vector3d &pPoint, const Vector3d &pNormal)
 
bool solve2eqns (double a1, double b1, double rhs1, double a2, double b2, double rhs2, double &x, double &y)
 
bool Solve2eqns (double a1, double b1, double rhs1, double a2, double b2, double rhs2, double &x, double &y)
 

Detailed Description

All functions defined in this file use no loops and rely only on Vector3d or built-in data types. More projection/intersection code can be found in the files customprojectintersect.h and customprojectintersect.cpp (those two files define the looped/non-inlinable functions).