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

Functions for operating with curves, surfaces, shells and solids. More...

#include <math_define.h>
#include <templ_rp_array.h>
#include <op_shell_parameter.h>
#include <op_swept_parameter.h>
#include <mb_operation_result.h>

Functions

bool IsMultiShell (const MbFaceShell *shell, bool checkNesting=true)
 Check if the shell can be subdivided into separate parts. More...
 
size_t DetachShells (MbFaceShell &shell, RPArray< MbFaceShell > &parts, bool sort, c3d::IndicesVector *partIndices=nullptr)
 Separate parts from a shell. More...
 
size_t DetachShells (MbFaceShell &shell, c3d::ShellsVector &parts, bool sort, c3d::IndicesVector *partIndices=nullptr)
 Separate parts from a shell. More...
 
size_t DetachShells (MbFaceShell &shell, c3d::ShellsSPtrVector &parts, bool sort, c3d::IndicesVector *partIndices=nullptr)
 Separate parts from a shell. More...
 
template<class ShellsVector >
size_t CreateShells (const MbFaceShell &shell, ShellsVector &parts, bool sort=true)
 Separate parts from a shell. More...
 
MbResultType ExtrusionShell (const MbSurface &surface, RPArray< MbContour > &contours, const MbVector3D &direction, const ExtrusionValues &params, const MbSNameMaker &operNames, RPArray< MbSNameMaker > &cNames, MbFaceShell *&result)
 Create a shell by extrusion of planar contours. More...
 
MbResultType RevolutionShell (const MbSurface &surface, RPArray< MbContour > &contours, const MbAxis3D &axis, const RevolutionValues &params, const MbSNameMaker &operNames, RPArray< MbSNameMaker > &cNames, MbFaceShell *&result)
 Create a shell by revolution of planar contours. More...
 
bool UnifyOwnComplanarFaces (MbFaceShell &shell, const MbSNameMaker &nameMaker, bool checkBaseSurfaces)
 Unite complanar faces. More...
 
void FacePropagate (const MbeFacePropagation fp, RPArray< MbFace > &face_set, const MbVector3D &dir)
 Capture the faces in one of proposed methods. More...
 
void MouldCavitySolids (RPArray< MbSolid > &solids, MbCartPoint3D *fixedPoint, double deltaX, double deltaY, double deltaZ)
 Scale cavities of a mold. More...
 
bool IsSolidsIntersection (const MbSolid &solid1, const MbSolid &solid2, const MbSNameMaker &snMaker)
 Check intersection of solids. More...
 
bool IsSolidsIntersection (const MbSolid &solid1, const MbMatrix3D &matr1, const MbSolid &solid2, const MbMatrix3D &matr2, bool checkTangent, bool getIntersectionSolids, bool checkTouchPoints, RPArray< MbShellsIntersectionData > &intData)
 Check intersection of solids in an assembly. More...
 
bool MinimumSolidsDistance (const MbSolid &solid1, const MbMatrix3D &matr1, bool isMultipleUseSolid1, const MbSolid &solid2, const MbMatrix3D &matr2, bool isMultipleUseSolid2, double lowerLimitDistance, bool tillFirstLowerLimit, std::vector< MbShellsDistanceData > &shellsDistanceData)
 Determine the minimum distance between solids in an assembly. More...
 
void MultipleSolidsClassification (const RPArray< MbSolid > &solids, const RPArray< MbSolid > &relativeSolids, std::vector< MbUnitInfo > &info)
 Classify a set of solids relative to another set of solids. More...
 
void GetDistanceToSurface (const MbPlacement3D &pl, const MbCurve *curve, const MbSurface *surf, double &lPlus, double &lMinus)
 Find the distances from a contour on a plane to a surface. More...
 
void CreateExtrusionCutSurfaces (const MbSurface &surface, const c3d::PlaneContoursSPtrVector &contours, const MbVector3D &direction, ExtrusionValues &params, VERSION version, MbResultType &resType, std::vector< std::pair< c3d::SurfaceSPtr, int >> &surfAndDir)
 Create cutter surfaces for extrusion of planar contours. More...
 
void GetDistanceToCube (const MbSurface &surface, const MbVector3D &direction, const MbCurve &curve, const MbCube &cube, double &lPlus, double &lMinus, MbResultType &resType)
 Find the distances from a contour on a surface to the bounding box of a shell. More...
 
void GetDistanceToCube (const MbSurface &surface, const MbVector3D &direction, const RPArray< MbCurve > &curves, const MbCube &cube, double &lPlus, double &lMinus, MbResultType &resType)
 Find the distances from curves on a surface to the bounding box of a shell. More...
 
bool GetDistanceToCube (const MbPlacement3D &pl, const MbFaceShell *shell, double &dPlus, double &dMinus, bool findMax=true)
 Find the distances from a plane to the bounding box of a shell. More...
 
void GetRangeToCubeOrSurface (const MbCurve3D &curve, const MbVector3D &direction, const MbAxis3D &axis, const bool rotation, bool operationDirection, const MbCube *toCube, const MbSurface *toSurface, SweptValuesAndSides &params, MbResultType &resType)
 Find the distances/angles from a contour to a bounding box or to a surface. More...
 
bool GetNearestSolid (const MbNearestSolidParams &params, MbNearestSolidResult &result)
 Find the nearest solids while extruding with option 'up to the nearest object'. More...
 
bool GetNearestSolid (const MbPlacement3D &pl, RPArray< MbContour > &c, MbSweptLayout::Direction direction, RPArray< MbSolid > &solids, size_t &nPlus, size_t &nMinus)
 Find the nearest solids while extruding with option 'up to the nearest object'. More...
 
bool GetNearestSolid (RPArray< MbCurve3D > &curves, const MbVector3D &direction, MbSweptLayout::Direction operationDirection, RPArray< MbSolid > &solids, size_t &nPlus, size_t &nMinus)
 Find the nearest solids while extruding with option 'up to the nearest object'. More...
 
MbResultType CheckNurbsShell (const NurbsSurfaceValues &params, const MbSolid &nsSolid, IProgressIndicator *progBar)
 Check a shell or a solid that consists of NURBS surfaces. More...
 
bool AddTruncatingSketch (const MbPlacement3D &sketchPlace, RPArray< MbCurve > &sketchCurves, RPArray< MbSpaceItem > &items)
 Add a sketch to the array of truncating objects. More...
 
void AddTruncatingCurve (const MbCurve3D &curve, RPArray< MbSpaceItem > &items)
 Add a curve to the array of truncating objects. More...
 
void CheckShellingFaces (const SweptValues &params, RPArray< MbFace > &faces)
 Check the correctness of shelling faces for creation of a thin-walled solid. More...
 
bool ProjectVectorOn (const MbVector3D &v3d, const MbSurface &surface, const MbCartPoint &p2d, MbVector &v2d)
 Calculate the components of projection of a vector defined at a point on the surface. More...
 
MbSurfaceGetExtendedSurfaceCopy (MbCube &gabarit, const MbSurface &surf, const MbShellCuttingParams::ProlongState &prolongState, VERSION version)
 Extend a surface for cutting a solid. More...
 
bool CreateFaces (const MbPlacement3D &place, const MbContour &contour, const MbVector3D &der, bool sense, const MbSNameMaker &n, RPArray< MbFace > &faces, bool useAddCount=false)
 Create a set of faces with topology of a prism. More...
 
bool CreateFaces (const MbPlacement3D &place, const MbContour &contour, const MbVector3D &der, bool sense, const MbSNameMaker &n, c3d::FacesSPtrVector &faces, bool useAddCount=false)
 Create a set of faces with topology of a prism. More...
 
void GetAutoReference (MbFaceShell &shell, const MbPlacement3D &place, const MbContour &contour, ptrdiff_t index, RibValues::ExtrudeSide &side, MbCartPoint3D &origin, MbVector3D &dir3D)
 Estimate parameters of extrusion for a rib. More...
 
MbCurveGetProjCurveOnSurface (const MbSurfaceIntersectionCurve &intersectCurve, bool first)
 Create a curve in the parameter space of a surface. More...
 
bool IsSameSpineDirection (const MbCurve3D &curve, VERSION srcVersion, VERSION dstVersion)
 Check the invariance of the vector of spine direction in different versions. More...
 
MbeItemLocation SecondContourLocation (const MbContour &contour1, const MbContour &contour2, double xEpsilon, double yEpsilon)
 Classify the position of the second contour relative to the first one. More...
 
bool IsSpaceNear (const MbCurve &curve1, const MbCurve &curve2, double xEpsilon, double yEpsilon, double devSag=5.0 *Math::deviateSag)
 Determine whether the first curve is close to the second curve. More...
 
bool IsSpaceNear (const MbCurve3D &curv, const MbSurface &surf, bool surfExt, double mEps, double devSag=5.0 *Math::deviateSag)
 Determine whether a curve is close to a surface. More...
 
bool SurfaceFace (const MbSurface &surface, SPtr< MbFace > &face)
 Create the face on the base of arbitrary surface. More...
 
MbGridSpaceGrid (const MbPlacement3D &place, const MbPlanarGrid &planarGrid, bool exact=false)
 Creating a three-dimensional grid on a two-dimensional grid. More...
 
MbItemReplaceByInstance (MbItem *item, double ratioThreashhold=-1.0, bool makeCopy=false)
 Replace an item by an instance if the length from it's bounding box to the world origin is greater than it's diagonal by specified factor. More...
 
MbResultType FloodFillResult (MbSolid &vessel, MbeCopyMode sameShell, const MbSweptData &bungData, const MbCartPoint3D &origin, const MbSNameMaker &names, MbSolid *&result)
 The construction of a "flood fill" volume located between the inner surface of the vessel and the bounding surface or body. More...
 
MbResultType CreateFastener (const RPArray< MbSolid > &solids, MbeCopyMode sameShell, const MbCartPoint3D &point, const FastenersValues &params, const MbSNameMaker &names, RPArray< MbSolid > &results)
 Create fastener using 3D point. More...
 
MbResultType CreateFasteners (const RPArray< MbSolid > &solids, MbeCopyMode sameShell, const MbCurve3D &curve, size_t number, const FastenersValues &params, const MbSNameMaker &names, RPArray< MbSolid > &results)
 Create an array of fastener elements using 3d curve. More...
 
MbResultType CreateMerging (MbSolid &solid, MbeCopyMode sameShell, c3d::FacesVector &faces, const MbNurbsParameters &uParam, const MbNurbsParameters &vParam, double tolerance, const MbSNameMaker &names, bool prolong, MbSolid *&result)
 Create a solid with one face instead selected faces. More...
 
bool FindTouchedFaces (const MbSolid &solid1, const MbSolid &solid2, double precision, c3d::IndicesPairsVector &facesNumbers)
 To find contacted faces of bodies. More...
 
bool SplitTouchedFaces (MbSolid &solid1, MbSolid &solid2, double precision, c3d::IndicesPairsVector &facesNumbers)
 To find contacted faces of bodies. More...
 
MbResultType TouchedSolidsMerging (MbSolid &solid1, MbeCopyMode sameShell1, MbSolid &solid2, MbeCopyMode sameShell2, const MbSNameMaker &names, double precision, MbSolid *&result)
 The function performs unite the bodies with contacted faces. More...
 
MbResultType SolidRepairing (MbSolid &solid, double accuracy)
 Solid repairing. More...
 
void FindFilletFaces (const RPArray< MbFace > &faces, double accuracy, RPArray< MbFace > &filletFaces)
 Find fillet and chamfer faces. More...
 
bool IsFilletFace (const MbFace &face, double accuracy)
 Recognize fillet face. More...
 
c3d::SolidSPtr GetTransformedSolid (c3d::SolidSPtr &solid, MbeCopyMode &copyMode, const MbMatrix3D &matr, SimpleName transformedMainName=ct_TransformedSolid)
 Get transformed copy of a solid. More...
 
template<class Item >
SPtr< Item > GetTransformedItem (SPtr< Item > &item, const MbMatrix3D &matr, MbRegDuplicate *iDupReg=nullptr, MbRegTransform *iTransReg=nullptr)
 Get transformed copy of object. More...
 

Detailed Description

Functions for operating with curves, surfaces, shells and solids.