FEDEM Solver
R8.0
Source code of the dynamics solver
|
Class representing a circular arc in 3D space. More...
#include <FFa3PArc.H>
Public Member Functions | |
FFa3PArc (const FaVec3 &p1, const FaVec3 &p2, const FaVec3 &p3) | |
The constructor initializes the three points defining the arc. More... | |
FaVec3 | getCenter () const |
Returns the centre point of the arc. More... | |
FaVec3 | getNormal () const |
Returns the normal vector of the arc plane. More... | |
double | getRadius () const |
Returns the radius of the arc. More... | |
double | getArcLength (double maxDeflection=0.0) const |
Returns the length of the arc. More... | |
FaVec3 | getPointOnArc (double lengthFromStart) const |
Returns the point a given distance from the start point. More... | |
FaVec3 | getTangent (double lengthFromStart) const |
Returns the tangent vector at a given distance from the start. More... | |
FaVec3 | getSecant () const |
Returns the secant vector of the arc. More... | |
const FaVec3 & | front () const |
Returns the start point. More... | |
const FaVec3 & | back () const |
Returns the end point. More... | |
FaMat34 | getCtrlPointMatrix (int pointNumber, const FaVec3 &positiveNormal, bool normalIsSignOnly=true) const |
Returns the full position matrix for one of the arc points. More... | |
bool | isArc (double epsilon=1.0e-10) const |
Returns false if this arc is a straight line. More... | |
bool | isInside (const FaVec3 &point) const |
Returns true if given point is inside the arc. More... | |
Static Public Member Functions | |
static FFa3PArc | makeFromTangentP1P2 (const FaVec3 &t, const FaVec3 &p1, const FaVec3 &p2, bool startTan=true) |
Creates an arc from two end points and a tangent vector. More... | |
static FFa3PArc | makeFromP1T1T2L (const FaVec3 &p1, const FaVec3 &t1, const FaVec3 &t2, double arcLength) |
Creates an arc from an end point and two tangent vectors. More... | |
Private Attributes | |
std::array< FaVec3, 3 > | P |
The three points defining this arc. More... | |
Class representing a circular arc in 3D space.
Mainly used to model cam joint and contact element master curves.
The constructor initializes the three points defining the arc.
|
inline |
Returns the end point.
|
inline |
Returns the start point.
double FFa3PArc::getArcLength | ( | double | maxDeflection = 0.0 | ) | const |
Returns the length of the arc.
Returns the length along the arc that will make the sagitta (distance from the chord to the arc) maxDeflection long. If maxDeflection is zero, the total arc length is returned.
FaVec3 FFa3PArc::getCenter | ( | ) | const |
Returns the centre point of the arc.
FaMat34 FFa3PArc::getCtrlPointMatrix | ( | int | pointNumber, |
const FaVec3 & | positiveNormal, | ||
bool | normalIsSignOnly = true |
||
) | const |
Returns the full position matrix for one of the arc points.
FaVec3 FFa3PArc::getNormal | ( | ) | const |
Returns the normal vector of the arc plane.
FaVec3 FFa3PArc::getPointOnArc | ( | double | lengthFromStart | ) | const |
Returns the point a given distance from the start point.
double FFa3PArc::getRadius | ( | ) | const |
Returns the radius of the arc.
|
inline |
Returns the secant vector of the arc.
FaVec3 FFa3PArc::getTangent | ( | double | lengthFromStart | ) | const |
Returns the tangent vector at a given distance from the start.
bool FFa3PArc::isArc | ( | double | epsilon = 1.0e-10 | ) | const |
Returns false if this arc is a straight line.
bool FFa3PArc::isInside | ( | const FaVec3 & | point | ) | const |
Returns true if given point is inside the arc.
|
static |
Creates an arc from an end point and two tangent vectors.
|
static |
Creates an arc from two end points and a tangent vector.
|
private |
The three points defining this arc.