C3D Toolkit  Kernel - 117982, Vision - 2.9.2.2
+ Collaboration diagram for Two-Dimensional Base Objects:

Classes

class  MbCartPoint
 The cartesian two-dimensional point. More...
 
class  MbHomogeneous
 Extended point with homogeneous coordinates in the two-dimensional space. More...
 
class  MbMatrix
 The extended matrix of transformation in a two-dimensional space. More...
 
class  MbPlacement
 Local coordinate system in two dimensional space. More...
 
class  MbRect
 Bounding rectangle. More...
 
class  MbVector
 Two-dimensional vector. More...
 
class  MbDirection
 Two-dimensional normalized vector. More...
 

Enumerations

enum  MbeLocalSystemType { ls_CartesSystem , ls_PolarSystem }
 Types of local coordinate systems in two dimensional space. More...
 
enum  TaeTwoRectPos { rp_FirstInside , rp_SecondInside , rp_Intersect , rp_NoIntersect }
 Possible locations of two bounding boxes relative to each other. More...
 

Functions

template<typename PointParamVector , typename PointVector >
void c3d::SplitHomoVector (const PointParamVector &hList, PointVector &uvList)
 Separation of coordinates and weights. More...
 
template<typename PointParamVector , typename PointVector , typename ParamVector >
void c3d::SplitHomoVector (const PointParamVector &hList, PointVector &uvList, ParamVector &tList)
 Separation of coordinates and weights. More...
 
void MulMatrix (const MbMatrix &m1, const MbMatrix &m2, MbMatrix &res)
 Multiply matrices. More...
 
double Angle2Vectors (const MbVector &v1, const MbVector &v2)
 Calculate minimal angle between two vectors. More...
 

Detailed Description

Enumeration Type Documentation

◆ MbeLocalSystemType

Types of local coordinate systems in two dimensional space.

Types of local coordinate systems in two dimensional space.

Enumerator
ls_CartesSystem 

Cartesian coordinate system.

ls_PolarSystem 

Polar coordinate system.

◆ TaeTwoRectPos

Possible locations of two bounding boxes relative to each other.

Possible locations of two bounding boxes relative to each other.

Enumerator
rp_FirstInside 

The first bounding box includes the second one.

rp_SecondInside 

The second bounding box includes the first one.

rp_Intersect 

Bounding boxes intersect.

rp_NoIntersect 

Bounding boxes do not intersect.

Function Documentation

◆ SplitHomoVector() [1/2]

template<typename PointParamVector , typename PointVector >
void c3d::SplitHomoVector ( const PointParamVector &  hList,
PointVector &  uvList 
)

Separation of coordinates and weights.

Separation of coordinates and weights.
Additional coordinate of a point (weight) is introduced for the convenience of working with non-uniform rational splines.

◆ SplitHomoVector() [2/2]

template<typename PointParamVector , typename PointVector , typename ParamVector >
void c3d::SplitHomoVector ( const PointParamVector &  hList,
PointVector &  uvList,
ParamVector &  tList 
)

Separation of coordinates and weights.

Separation of coordinates and weights.
Additional coordinate of a point (weight) is introduced for the convenience of working with non-uniform rational splines.

◆ MulMatrix()

void MulMatrix ( const MbMatrix m1,
const MbMatrix m2,
MbMatrix res 
)

Multiply matrices.

Multiply m1 matrix by m2 matrix (instead of res = m1 * m2).

Parameters
[in]m1,m2- Initial matrices.
[out]res- The required matrix.

◆ Angle2Vectors()

double Angle2Vectors ( const MbVector v1,
const MbVector v2 
)
inline

Calculate minimal angle between two vectors.

Calculate angle between two vectors (-pi ... pi) Returns signed result:
<0 to the left of vector v1
>0 to the right of vector v2

Note
Normalization of vectors is not required