#include <iso_geom_line_tools.h>
Collaboration diagram for iso::geom::LineTools:
Public Member Functions | |
void | closestPoint (const math::Vector< real > &pSP, const math::Vector< real > &pV1, const math::Vector< real > &pV2, math::Vector< real > &pRP, real &pU) |
calculcate closest point on line segment passing through pV1 and pV2 | |
void | closestPointLine (const math::Vector< real > &pSP, const math::Vector< real > &pV1, const math::Vector< real > &pV2, math::Vector< real > &pRP, real &pU) |
calculcate closest point on line segment passing through pV1 and pV2 | |
void | closestPointRay (const math::Vector< real > &pSP, const math::Vector< real > &pOrigin, const math::Vector< real > &pDirection, math::Vector< real > &pRP, real &pU) |
calculcate closest point on line segment passing through pV1 and pV2 | |
void | closestPoint (const math::Vector< real > &pSP, const QVector< math::Vector< real > > &pVs, math::Vector< real > &pRP, int &pI1, int &pI2, real &pU) |
calculcate closest point on polyline | |
bool | intersect (const math::Vector< real > &pL1V1, const math::Vector< real > &pL1V2, const math::Vector< real > &pL2V1, const math::Vector< real > &pL2V2, math::Vector< real > &pRP) |
calculate intersection between two lines | |
bool | intersectLineLine (const math::Vector< real > &pL1V1, const math::Vector< real > &pL1V2, const math::Vector< real > &pL2V1, const math::Vector< real > &pL2V2, math::Vector< real > &pRP) |
calculate intersection between two lines | |
bool | intersectRayLine (const math::Vector< real > &pRS, const math::Vector< real > &pRD, const math::Vector< real > &pLV1, const math::Vector< real > &pLV2, math::Vector< real > &pRP) |
calculate intersection between ray and line | |
bool | intersectRayRay (const math::Vector< real > &pR1S, const math::Vector< real > &pR1D, const math::Vector< real > &pR2S, const math::Vector< real > &pR2D, math::Vector< real > &pRP) |
calculate intersection between two rays | |
bool | intersectLinePolyLine (const math::Vector< real > &pLV1, const math::Vector< real > &pLV2, QVector< math::Vector< float > > &pVs, QVector< math::Vector< float > > &pRPs) |
calculate intersection(s) between two lines | |
bool | intersectLinePolyLine (const math::Vector< real > &pLV1, const math::Vector< real > &pLV2, QVector< math::Vector< float > > &pVs, QVector< math::Vector< float > > &pRPs, QVector< int > &pIs) |
calculate intersection(s) between two lines | |
bool | intersectRayPolyLine (const math::Vector< real > &pRS, const math::Vector< real > &pRD, QVector< math::Vector< float > > &pVs, QVector< math::Vector< float > > &pRPs) |
calculate intersection between ray and line | |
bool | intersectRayPolyLine (const math::Vector< real > &pRS, const math::Vector< real > &pRD, QVector< math::Vector< float > > &pVs, QVector< math::Vector< float > > &pRPs, QVector< int > &pIs) |
calculate intersection between ray and line | |
Static Public Member Functions | |
static LineTools & | get () |
static void | destroy () |
Protected Member Functions | |
LineTools () | |
~LineTools () | |
Static Protected Attributes | |
static LineTools * | sLineTools |
LineTools::LineTools | ( | ) | [protected] |
LineTools::~LineTools | ( | ) | [protected] |
LineTools & LineTools::get | ( | ) | [static] |
void LineTools::destroy | ( | ) | [static] |
void LineTools::closestPoint | ( | const math::Vector< real > & | pSP, | |
const math::Vector< real > & | pV1, | |||
const math::Vector< real > & | pV2, | |||
math::Vector< real > & | pRP, | |||
real & | pU | |||
) |
calculcate closest point on line segment passing through pV1 and pV2
pSP | search point | |
pV1 | line vertex 1 | |
pV2 | line vertex 2 | |
pRP | resulting closest point | |
pU | resulting interplation parameter |
void LineTools::closestPointLine | ( | const math::Vector< real > & | pSP, | |
const math::Vector< real > & | pV1, | |||
const math::Vector< real > & | pV2, | |||
math::Vector< real > & | pRP, | |||
real & | pU | |||
) |
calculcate closest point on line segment passing through pV1 and pV2
pSP | search point | |
pV1 | line vertex 1 | |
pV2 | line vertex 2 | |
pRP | resulting closest point | |
pU | resulting interplation parameter |
void LineTools::closestPointRay | ( | const math::Vector< real > & | pSP, | |
const math::Vector< real > & | pOrigin, | |||
const math::Vector< real > & | pDirection, | |||
math::Vector< real > & | pRP, | |||
real & | pU | |||
) |
calculcate closest point on line segment passing through pV1 and pV2
pSP | search point | |
pV1 | line vertex 1 | |
pV2 | line vertex 2 | |
pRP | resulting closest point | |
pU | resulting interplation parameter |
void LineTools::closestPoint | ( | const math::Vector< real > & | pSP, | |
const QVector< math::Vector< real > > & | pVs, | |||
math::Vector< real > & | pRP, | |||
int & | pI1, | |||
int & | pI2, | |||
real & | pU | |||
) |
calculcate closest point on polyline
pSP | search point | |
pVs | polyline vertices | |
pV2 | line vertex 2 | |
pRP | resulting closest point | |
pI1 | starting index & resulting index of begin of line segment | |
pI2 | ending index & resulting index of end of line segment | |
pU | resulting interplation parameter |
bool LineTools::intersect | ( | const math::Vector< real > & | pL1V1, | |
const math::Vector< real > & | pL1V2, | |||
const math::Vector< real > & | pL2V1, | |||
const math::Vector< real > & | pL2V2, | |||
math::Vector< real > & | pRP | |||
) |
calculate intersection between two lines
pL1V1 | start point of first line | |
pL1V2 | end point of first line | |
pL2V1 | start point of second line | |
pL2V2 | end point of second line | |
pRP | result point (if intersection exists) |
bool LineTools::intersectLineLine | ( | const math::Vector< real > & | pL1V1, | |
const math::Vector< real > & | pL1V2, | |||
const math::Vector< real > & | pL2V1, | |||
const math::Vector< real > & | pL2V2, | |||
math::Vector< real > & | pRP | |||
) |
calculate intersection between two lines
pL1V1 | start point of first line | |
pL1V2 | end point of first line | |
pL2V1 | start point of second line | |
pL2V2 | end point of second line | |
pRP | result point (if intersection exists) |
bool LineTools::intersectRayLine | ( | const math::Vector< real > & | pRS, | |
const math::Vector< real > & | pRD, | |||
const math::Vector< real > & | pLV1, | |||
const math::Vector< real > & | pLV2, | |||
math::Vector< real > & | pRP | |||
) |
calculate intersection between ray and line
pRS | start point of ray | |
pRD | direction of ray | |
pLV1 | start point of line | |
pLV2 | end point of line | |
pRP | result point (if intersection exists) |
bool LineTools::intersectRayRay | ( | const math::Vector< real > & | pR1S, | |
const math::Vector< real > & | pR1D, | |||
const math::Vector< real > & | pR2S, | |||
const math::Vector< real > & | pR2D, | |||
math::Vector< real > & | pRP | |||
) |
calculate intersection between two rays
pR1S | start point of first ray | |
pR1D | direction of first ray | |
pR2S | start point of second ray | |
pR2D | direction of second ray | |
pRP | result point (if intersection exists) |
bool LineTools::intersectLinePolyLine | ( | const math::Vector< real > & | pLV1, | |
const math::Vector< real > & | pLV2, | |||
QVector< math::Vector< float > > & | pVs, | |||
QVector< math::Vector< float > > & | pRPs | |||
) |
calculate intersection(s) between two lines
pLV1 | start point of line | |
pLV2 | end point of line | |
pVs | polyline vertices | |
pRPs | result points |
bool LineTools::intersectLinePolyLine | ( | const math::Vector< real > & | pLV1, | |
const math::Vector< real > & | pLV2, | |||
QVector< math::Vector< float > > & | pVs, | |||
QVector< math::Vector< float > > & | pRPs, | |||
QVector< int > & | pIs | |||
) |
calculate intersection(s) between two lines
pLV1 | start point of line | |
pLV2 | end point of line | |
pVs | polyline vertices | |
pRPs | result points | |
pIs | stating indices of intersected line segments |
bool LineTools::intersectRayPolyLine | ( | const math::Vector< real > & | pRS, | |
const math::Vector< real > & | pRD, | |||
QVector< math::Vector< float > > & | pVs, | |||
QVector< math::Vector< float > > & | pRPs | |||
) |
calculate intersection between ray and line
pRS | start point of ray | |
pRD | direction of ray | |
pVs | polyline vertices | |
pRPs | result points |
bool LineTools::intersectRayPolyLine | ( | const math::Vector< real > & | pRS, | |
const math::Vector< real > & | pRD, | |||
QVector< math::Vector< float > > & | pVs, | |||
QVector< math::Vector< float > > & | pRPs, | |||
QVector< int > & | pIs | |||
) |
calculate intersection between ray and line
pRS | start point of ray | |
pRD | direction of ray | |
pVs | polyline vertices | |
pRPs | result points | |
pIs | stating indices of intersected line segments |
LineTools * LineTools::sLineTools [static, protected] |