C3D Toolkit  Kernel - 117982, Vision - 2.9.2.2
action_point.h File Reference

Functions for points creation. More...

#include <templ_s_array.h>
#include <mb_operation_result.h>
#include <mb_enum.h>
#include <mb_cart_point.h>
#include <mb_cart_point3d.h>
#include <cur_line.h>
#include <mb_variables.h>

Classes

class  MbSpaceParamPnt
 A space-parametric point. More...
 

Typedefs

typedef std::pair< MbSpaceParamPnt, c3d::UintPairMbLocPnt
 A space-parametric point with indexed position.
 

Functions

template<class Type >
SArray< Type > * CreateArray (size_t cnt, MbResultType &res)
 Create an array. More...
 
template<class Type >
bool ReserveArray (SArray< Type > &arr, size_t n, MbResultType &res)
 Allocate memory in the array for n elements. More...
 
template<class Type >
bool AddItem (SArray< Type > &arr, const Type &item, MbResultType &res)
 Add an element to the array. More...
 
MbResultType PointsOnSurface (const MbSurface &surface, MbeStepType stepType, double uValue, double vValue, bool truncateByBounds, RPArray< SArray< MbLocPnt > > &result)
 Create points on a surface. More...
 
MbResultType PointsOnSurface (const MbSurface &surface, MbeItemGridType &gridType, const MbCartPoint &uv0, double angle, MbeStepType stepType, double step1, double step2, bool truncateByBounds, RPArray< SArray< MbLocPnt > > &result, size_t maxPntsCnt=c3d::ARRAY_MAX_COUNT)
 Create points on a surface. More...
 
void DefinePointsOnSurfaceCounts (const MbSurface &surface, size_t &uPntsCnt, size_t &vPntsCnt)
 Define the default sampling of a surface. More...
 
MbeNewtonResult IntersectionPoint (const MbSurface &surf0, bool ext0, const MbSurface &surf1, bool ext1, const MbSurface &surf2, bool ext2, MbCartPoint &uv0, MbCartPoint &uv1, MbCartPoint &uv2)
 Calculate the intersection point of three surfaces. More...
 
void IntersectionPoints (const MbSurface &surf, bool surfExt, const MbCurve3D &curv, bool curveExt, SArray< MbCartPoint > &uv, SArray< double > &tt, bool touchInclude=false)
 Calculate all the points of intersection of a surface and a curve. More...
 
bool LineLineNearestParams (const MbCartPoint3D &origin1, const MbVector3D &direction1, const MbCartPoint3D &origin2, const MbVector3D &direction2, double &t1, double &t2)
 Determine the parameters of the nearest points of lines. More...
 
double LineLineNearestPoints (const MbLine3D &line1, const MbLine3D &line2, MbCartPoint3D &p1, MbCartPoint3D &p2)
 Determination of the distance between the nearest points p1 and p2 of lines line1 and line2. More...
 
bool LineLineNearestParams (const MbCartPoint &origin1, const MbVector &direction1, const MbCartPoint &origin2, const MbVector &direction2, double &t1, double &t2)
 Determine the parameters of the nearest points of lines. More...
 
void FastLineLine (const MbLine &line1, const MbLine &line2, MbCartPoint &result)
 Calculate the point of two lines intersection. More...
 
int LineLine (const MbLine &line1, const MbLine &line2, MbCartPoint &result)
 Calculate the point of two lines intersection. More...
 
int LineLine (const MbLine &line1, const MbLine &line2, MbCrossPoint &result)
 Calculate the point of two lines intersection. More...
 
int LineLineSeg (const MbLine &line, const MbLineSegment &lseg, MbCrossPoint &result)
 Calculate the intersection point of a line and a line segment. More...
 
int LineCircle (const MbLine &line, const MbCartPoint &centre, double radius, MbCrossPoint *result)
 Calculate intersection points of a line and a circle. More...
 
ptrdiff_t IntersectTwoCurves (const MbCurve &pCurve1, const MbCurve &pCurve2, SArray< MbCrossPoint > &result, bool touchInclude, double epsilon=Math::LengthEps *c3d::METRIC_DELTA, bool allowInaccuracy=true)
 Calculate intersection points of two curves. More...
 
ptrdiff_t CurveCurveIntersection (const MbCurve &curve1, const MbCurve &curve2, SArray< double > &result1, SArray< double > &result2, double xEpsilon, double yEpsilon, bool touchInclude, bool allowInaccuracy=true)
 Calculate intersection points of two curves. More...
 
void CurveSelfIntersect (const MbCurve &curve, double xEpsilon, double yEpsilon, SArray< double > &result1, SArray< double > &result2, VERSION version=Math::DefaultMathVersion())
 Calculate the points of curve self-intersection. More...
 
void RemoveAllTouchParams (const MbCurve &curve1, const MbCurve &curve2, SArray< MbCrossPoint > &result, double eps=PARAM_NEAR)
 Remove touch points. More...
 
ptrdiff_t CurveCurveIntersection (const MbCurve3D &curve1, const MbCurve3D &curve2, SArray< double > &result1, SArray< double > &result2, double mEps, VERSION version=Math::DefaultMathVersion())
 Calculate intersection points of two curves. More...
 
bool IsSelfIntersect (const MbCurve3D &curve, double mEps=Math::metricRegion)
 Determine if the curve has self-intersections. More...
 
void FilterTouchParams (const MbCurve3D &curve1, const MbCurve3D &curve2, SArray< double > &result1, SArray< double > &result2, double mEps=Math::metricRegion)
 Remove the tangent intersection points. More...
 
ptrdiff_t CurveCurveCrossing (const MbCurve3D &curve1, const MbCurve3D &curve2, SArray< double > &result1, SArray< double > &result2, double epsilon=Math::metricRegion)
 Calculate the points of two curves crossing. More...
 
bool PointProjectionRelativeOuterLoop (const MbSurface &surface, const MbCartPoint3D &pnt, bool byOuterRectOnly, MbCartPoint &result)
 Find the projection of a point on a surface relative to the outer contour of the surface. More...
 
bool IsMultipleProjection (const MbSurface &surface, const MbCartPoint3D &result)
 Determine whether the point projection is multiple-valued. More...
 
bool TouchIntersectionPoints (const MbSurface &surf1, bool ext1, const MbSurface &surf2, bool ext2, std::vector< MbCartPoint > &uv1arr, std::vector< MbCartPoint > &uv2arr)
 Calculate the touch points of two surfaces. More...
 
bool PointsRelativeShell (const std::vector< MbCartPoint3D > &points, const MbFaceShell &shell, std::vector< MbeItemLocation > &pLocs)
 Determine the position of points relative to the shell. More...
 

Detailed Description

Functions for points creation.

Functions that take points or arrays of points as input parameters.