FEDEM Solver  R8.0
Source code of the dynamics solver
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
FFa3PArc Class Reference

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 FaVec3front () const
 Returns the start point. More...
 
const FaVec3back () 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...
 

Detailed Description

Class representing a circular arc in 3D space.

Mainly used to model cam joint and contact element master curves.

Constructor & Destructor Documentation

◆ FFa3PArc()

FFa3PArc::FFa3PArc ( const FaVec3 p1,
const FaVec3 p2,
const FaVec3 p3 
)
inline

The constructor initializes the three points defining the arc.

Member Function Documentation

◆ back()

const FaVec3& FFa3PArc::back ( ) const
inline

Returns the end point.

◆ front()

const FaVec3& FFa3PArc::front ( ) const
inline

Returns the start point.

◆ getArcLength()

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.

◆ getCenter()

FaVec3 FFa3PArc::getCenter ( ) const

Returns the centre point of the arc.

◆ getCtrlPointMatrix()

FaMat34 FFa3PArc::getCtrlPointMatrix ( int  pointNumber,
const FaVec3 positiveNormal,
bool  normalIsSignOnly = true 
) const

Returns the full position matrix for one of the arc points.

◆ getNormal()

FaVec3 FFa3PArc::getNormal ( ) const

Returns the normal vector of the arc plane.

◆ getPointOnArc()

FaVec3 FFa3PArc::getPointOnArc ( double  lengthFromStart) const

Returns the point a given distance from the start point.

◆ getRadius()

double FFa3PArc::getRadius ( ) const

Returns the radius of the arc.

◆ getSecant()

FaVec3 FFa3PArc::getSecant ( ) const
inline

Returns the secant vector of the arc.

◆ getTangent()

FaVec3 FFa3PArc::getTangent ( double  lengthFromStart) const

Returns the tangent vector at a given distance from the start.

◆ isArc()

bool FFa3PArc::isArc ( double  epsilon = 1.0e-10) const

Returns false if this arc is a straight line.

◆ isInside()

bool FFa3PArc::isInside ( const FaVec3 point) const

Returns true if given point is inside the arc.

◆ makeFromP1T1T2L()

FFa3PArc FFa3PArc::makeFromP1T1T2L ( const FaVec3 p1,
const FaVec3 t1,
const FaVec3 t2,
double  arcLength 
)
static

Creates an arc from an end point and two tangent vectors.

◆ makeFromTangentP1P2()

FFa3PArc FFa3PArc::makeFromTangentP1P2 ( const FaVec3 t,
const FaVec3 p1,
const FaVec3 p2,
bool  startTan = true 
)
static

Creates an arc from two end points and a tangent vector.

Member Data Documentation

◆ P

std::array<FaVec3,3> FFa3PArc::P
private

The three points defining this arc.


The documentation for this class was generated from the following files: