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

Functions for normals and curvature analysis of surfaces and curves. More...

#include <surface.h>
#include <cur_surface_intersection.h>
#include <topology.h>

Classes

class  MbSurfacesJointAnalysisParams
 Input parameters of the search function for minimum and maximum deviations of surfaces parameters along their intersection curve. More...
 
class  MbSurfacesJointAnalysisResults
 Output parameters of the function of finding the minimum and maximum deviations of surfaces parameters along their intersection curve. More...
 
struct  MbSurfacesJointAnalysisResults::Data
 Output local parameters. More...
 

Typedefs

typedef void(* SurfaceFunction) (const MbSurface &surf, const MbCartPoint &pnt, double &func, MbVector *der)
 The function define on the surface. More...
 

Enumerations

enum  MbeExtremsSearchingMethod { esm_GradientDescent = 1 , esm_LineSegregation = 2 , esm_AdaptiveCells = 3 }
 Algorithms for finding extremes on the surface. More...
 

Functions

void MinSurfaceCurvature (const MbSurface &surf, const MbCartPoint &pnt, double &func, MbVector *der=nullptr)
 Calculate at the point of the surface the minimum normal curvature, as well as its gradient. More...
 
void MaxSurfaceCurvature (const MbSurface &surf, const MbCartPoint &pnt, double &func, MbVector *der=nullptr)
 Calculate at the point of the surface the maximum normal curvature, as well as its gradient. More...
 
void GaussCurvature (const MbSurface &surf, const MbCartPoint &pnt, double &func, MbVector *der=nullptr)
 Calculate at a surface point the Gaussian curvature, as well as its gradient. More...
 
void MeanCurvature (const MbSurface &surf, const MbCartPoint &pnt, double &func, MbVector *der=nullptr)
 Calculate at the point of the surface the mean curvature, as well as its gradient. More...
 
void UNormalCurvature (const MbSurface &surf, const MbCartPoint &pnt, double &func, MbVector *der=nullptr)
 Calculate at the surface point the normal curvature in the direction of u, as well as its gradient. More...
 
void VNormalCurvature (const MbSurface &surf, const MbCartPoint &pnt, double &func, MbVector *der=nullptr)
 Calculate at the surface point the normal curvature in the direction of v, as well as its gradient. More...
 
void SurfaceMinMaxCurvature (const MbSurface &surface, SurfaceFunction func, double &maxNegCurv, MbCartPoint &maxNegLoc, double &maxPosCurv, MbCartPoint &maxPosLoc, MbeExtremsSearchingMethod method=esm_LineSegregation)
 Find the points of the surface at which the selected curvature takes the largest in modulus values. More...
 
void FacesMinMaxCurvature (const RPArray< MbFace > &faces, SurfaceFunction func, double &maxNegCurv, MbFace *&maxNegFace, MbCartPoint &maxNegLoc, double &maxPosCurv, MbFace *&maxPosFace, MbCartPoint &maxPosLoc, bool borderControl=false, MbeExtremsSearchingMethod method=esm_LineSegregation)
 Find the points of the shell at which the selected curvature takes the most modulo values. More...
 
void FacesMinMaxCurvature (const c3d::ConstFacesVector &faces, SurfaceFunction func, double &maxNegCurv, const MbFace *&maxNegFace, MbCartPoint &maxNegLoc, double &maxPosCurv, const MbFace *&maxPosFace, MbCartPoint &maxPosLoc, bool borderControl=false, MbeExtremsSearchingMethod method=esm_LineSegregation)
 Find the points of the shell at which the selected curvature takes the most modulo values. More...
 
void FacesMinMaxCurvature (const c3d::ConstFacesSPtrVector &faces, SurfaceFunction func, double &maxNegCurv, const MbFace *&maxNegFace, MbCartPoint &maxNegLoc, double &maxPosCurv, const MbFace *&maxPosFace, MbCartPoint &maxPosLoc, bool borderControl=false, MbeExtremsSearchingMethod method=esm_LineSegregation)
 Find the points of the shell at which the selected curvature takes the most modulo values. More...
 
void SurfaceMinMaxCurvature (const MbSurface &surface, double &maxNegCurv, MbCartPoint &maxNegLoc, double &maxPosCurv, MbCartPoint &maxPosLoc, MbeExtremsSearchingMethod method=esm_LineSegregation)
 Find the points on the surface at which the major normal curvatures take the largest values in the module. More...
 
void FacesMinMaxCurvature (const RPArray< MbFace > &faces, double &maxNegCurv, MbFace *&maxNegFace, MbCartPoint &maxNegLoc, double &maxPosCurv, MbFace *&maxPosFace, MbCartPoint &maxPosLoc, bool borderControl=false, MbeExtremsSearchingMethod method=esm_LineSegregation)
 Find the points on the shell at which the major normal curvatures take the largest values in the module. More...
 
void FacesMinMaxCurvature (const c3d::ConstFacesVector &faces, double &maxNegCurv, const MbFace *&maxNegFace, MbCartPoint &maxNegLoc, double &maxPosCurv, const MbFace *&maxPosFace, MbCartPoint &maxPosLoc, bool borderControl=false, MbeExtremsSearchingMethod method=esm_LineSegregation)
 Find the points on the shell at which the major normal curvatures take the largest values in the module. More...
 
void FacesMinMaxCurvature (const c3d::ConstFacesSPtrVector &faces, double &maxNegCurv, const MbFace *&maxNegFace, MbCartPoint &maxNegLoc, double &maxPosCurv, const MbFace *&maxPosFace, MbCartPoint &maxPosLoc, bool borderControl=false, MbeExtremsSearchingMethod method=esm_LineSegregation)
 Find the points on the shell at which the major normal curvatures take the largest values in the module. More...
 
double CurveOrientedCurvature (const MbCurve3D &curve, double &param, const MbVector3D *planeNorm=nullptr)
 Oriented curvature for a plane curve. More...
 
void CurveMinMaxCurvature (const MbCurve3D &curve, double &maxCurv, double &maxParam, double &minCurv, double &minParam, c3d::DoubleVector *bendPoints=nullptr, c3d::DoubleVector *maxPoints=nullptr, c3d::DoubleVector *minPoints=nullptr, c3d::DoublePairsVector *rapPoints=nullptr)
 Find the points on the curve at which the curvature takes the largest and smallest values. More...
 
void SurfaceMaxCurvatureDirection (const MbSurface &surf, const MbCartPoint &pnt, MbVector &dir)
 The direction of the maximum normal surface curvature. More...
 
bool SurfacesNormalsMinMaxAngles (const MbSurfacesJointAnalysisParams &params, MbSurfacesJointAnalysisResults &results)
 The function of finding the minimum and maximum angles between surfaces normals of the intersection curve. More...
 
bool SurfacesJointMinMaxValues (const MbSurfacesJointAnalysisParams &params, MbSurfacesJointAnalysisResults &results)
 The function of finding the minimum and maximum values of surface joint parameter. More...
 

Detailed Description

Functions for normals and curvature analysis of surfaces and curves.