All Frameworks  Class Hierarchy  This Framework  Next  Indexes

AdvancedTopologicalOpe Class CATFrFTopologicalSweep

Mathematics.CATCGMVirtual
  |
  +---GeometricObjects.CATCGMOperator
    |
    +---NewTopologicalObjects.CATTopOperator
      |
      +---CATFrFTopologicalSweep
 

Usage: you must use this class as is. You should never derive it.


public class CATFrFTopologicalSweep

Class representing the topological operator that computes swept surfaces.

A sweep operation is defined by:

This operator can create, according to the chosen options:
The CATFrFTopologicalSweep operator follows the global frame of the topological operators and satisfies the smart mechanism: the input bodies are not modified. A new resulting body is created, possibly sharing data with the input bodies.


Constructor and Destructor Index


o ~CATFrFTopologicalSweep()

Method Index


o ChooseOriginGuide(CATGeometry*,CATGeometry*)
Internal use.
o GetAllProfiles(double)
Returns the computed curves at a given section of the sweep.
o GetFrame(double,CATMathAxis*&)
Retrieves the moving frame at a given ratio parameter.
o GetNonCoupledSectionVertices(CATLISTP(CATVertex)*,CATListOfInt*,CATListOfInt*,CATListOfInt*,CATListOfInt*)
Gets vertices non coupled by automatic section vertices coupling.
o GetProfilePosition(CATMathAxis*&)
Retrieves the axes system of the profile (Sweep unspec.
o GetResult()
Returns the result of this operator.
o GetSpine()
Returns the spine.
o GetTwistedAreas(CATListOfDouble&,CATListOfDouble&)
Retrieves the limiting parameters of the twisted areas ot the wrap areas.
o Run()
Runs this operator.
o SetAnchorPoints(CATMathPoint&,CATMathPoint&)
Defines the anchor points for profile positionning.
o SetAngularLaw(CATCompositeLaw*)
Defines an angular law to rotate the moving frame around its Z axis.
o SetAngularLaws(CATCompositeLaw**,int)
Defines the angular laws for defining limiting guides.
o SetAreasToEliminate(CATLISTP(CATVertex)&,CATLISTP(CATVertex)&)
Defines the vertices limiting areas to eliminate from final sweep.
o SetCanonicSurfacesDetection(CATBoolean)
Sets the canonic surfaces detection mode (cones/cylinders/planes).
o SetCleanGuidesOption(int,double*,double*,double*)
Defines clean guides option, and clean parameter values.
o SetCleanProfilesOption(int,double*,double*,double*)
Defines clean profiles option, and clean parameter values.
o SetClosureMode()
Asks for the body closure.
o SetConeOption()
Defines cone option for segment sweep computation with reference element (behaves like a draft computation).
o SetCouplingGuides(CATLISTP(CATGeometry)*)
Defines additional guides to be used only for profile sections coupling.
o SetFunctionalGuides(CATLISTP(CATGeometry)*)
Defines the references for the (start and end) angles measurement for a segment or circle sweep.
o SetGuideContinuityCondition(int,CATGeometry*,CATFrFTopologicalSweepContinuity_Type)
Sets the continuity constraints (for multi profiles sweep) for a guide.
o SetLengthLaws(CATCompositeLaw**,int)
Defines the length laws for a segment sweep.
o SetLimitGuideSlopeCondition(int,CATGeometry*,CATCompositeLaw*)
Defines a slope condition for a conic or a circle sweep.
o SetLimitGuides(CATLISTP(CATGeometry)*)
Defines the limiting guides of a segment or circle sweep.
o SetMiddleGuides(CATLISTP(CATGeometry)*)
Defines the guide defining the center of the circle for a segment or circle sweep.
o SetPlanesDetection(CATBoolean)
Sets the plane detection mode.
o SetProfileAutomaticCouplingMode(CATFrFTopologicalSweepAutomaticCoupling_Type,CATBoolean,CATBoolean)
Defines the profile automatic coupling mode.
o SetProfileContinuityCondition(int,CATGeometry*,CATFrFTopologicalSweepContinuity_Type)
Sets the continuity constraints on start and end profiles (for multi profiles sweep).
o SetProfileOrientation(int,CATFrFTopologicalSweepOrientation_Type)
Sets the profiles orientation (for multi profiles sweep).
o SetProfilePosition(CATMathAxis*)
Defines the axes system of the profile.
o SetProfilePositionType(CATLONG32)
Definition of profile positioning type for a sweep with one or two guides (Sweep unspec and birail).
o SetProfileScalingOption(CATLONG32)
Defines the scaling mode to apply to the profile.
o SetRadiusLaw(CATCompositeLaw*)
Defines the radius law of a circle sweep.
o SetRadiusLaw(CATLaw*)
Defines the radius law of a circle sweep.
o SetReferenceElement(CATGeometry*)
Defines a variable viewing direction (sweep unspec).
o SetRelimitationMode(CATFrFTopologicalSweepRelimitation_Type)
Sets the relimitation mode by the extremity profiles.
o SetSimplification(CATBoolean)
Sets the simplification mode.
o SetSmoothAngleThreshold(double)
Defines the smooth angle threshold.
o SetSmoothOption(int)
Defines a smooth option for moving frame and comb extraction.
o SetSolutionChoice(CATLONG32)
Defines the conic, circle or segment to keep if case of ambiguous case.
o SetSpine(CATGeometry*,CATFrFTopologicalSweepSpine_Type)
Defines the spine.
o SetTwistDetection(int)
Defines the twist detection mode.
o SetUntwistMode(int,double)
Defines the untwist mode, in which every twisted area will be computed.
o SetWrapDetection(int)
Defines the wrap detection mode.
o ValidateCaseNumber(CATLONG32)
Checks the input data according to the sweep case.

Constructor and Destructor


o ~CATFrFTopologicalSweep
public virtual ~CATFrFTopologicalSweep()

Methods


o ChooseOriginGuide
public virtual void ChooseOriginGuide(CATGeometry* iChosenGuide,
CATGeometry* iReferenceElement=NULL) = 0
Internal use. Defines the guide to be used for positionning the moving axis origin.
Parameters:
iChosenGuide
The guide chosen (that must belong to the set of limit or functional guides).
iReferenceElement
The reference element chosen for normal computation.
o GetAllProfiles
public virtual CATFrFTopologicalSweep_ListPOfCATCurve* GetAllProfiles(double iLambda) = 0
Returns the computed curves at a given section of the sweep.
The number of the curves depends on the number of edges of the initial profiles and the number of guides.
Parameters:
iLambda
The parameter 0 <= iLambda <=1 indicating where the curves are computed.
Returns:
The list of the pointers to the created curves. If you do not want to keep the curves, use the CATICGMContainer.Remove method. Delete the list after use.
o GetFrame
public virtual void GetFrame(double iLambda,
CATMathAxis*& oFrame) = 0
Retrieves the moving frame at a given ratio parameter.
Parameters:
iLambda
The parameter 0 <= iLambda <=1 indicating where the frame is retrieved.
oFrame
The moving frame, that may or may not have been allocated before call and must be deallocated after
o GetNonCoupledSectionVertices
public virtual void GetNonCoupledSectionVertices(CATLISTP(CATVertex)* oVertices=0,
CATListOfInt* oSectionNumbers=0,
CATListOfInt* oEdgeNumbers=0,
CATListOfInt* oLevels=0,
CATListOfInt* oDomains=0) = 0
Gets vertices non coupled by automatic section vertices coupling.
Parameters:
oVertices
The list of non coupled section vertices.
oSectionNumbers
The list of section numbers for non coupled vertices.
oEdgeNumbers
The list of edge numbers for non coupled vertices (the vertex oVertices[i] is between edge oEdgeNumbers[i] and edge 1+oEdgeNumbers[i])
oLevels
The list of discontinuity levels for non coupled vertices (1 for C0 non C1 vertices, 2 for C1 non C2 vertices)
oDomains
The list of domain numbers for non coupled vertices (internal numerotation within current level management; same domain number may be given during non C1 vertices management and during non C2 vertices management)
o GetProfilePosition
public virtual void GetProfilePosition(CATMathAxis*& oProfileAxis) = 0
Retrieves the axes system of the profile (Sweep unspec.
Parameters:
oProfileAxis
The pointer to the input or computed axes system of the profile. The computed axes system belongs to this operator and is deleted at the operator deletion.
o GetResult
public virtual CATBody* GetResult()= 0
Returns the result of this operator.
Returns:
The pointer to the created body. You must delete it with the CATICGMContainer.Remove method if you do not want to keep it.
o GetSpine
public virtual CATGeometry* GetSpine()= 0
Returns the spine.
Returns:
The pointer to the input or computed spine. The computed (or implicit) spine belongs to this operator and is deleted at the operator deletion.
o GetTwistedAreas
public virtual void GetTwistedAreas(CATListOfDouble& oTwistBegin,
CATListOfDouble& oTwistEnd) = 0
Retrieves the limiting parameters of the twisted areas ot the wrap areas.
Parameters:
oTwistBegin
the beginning parameters of the twisted areas.
oTwistEnd
the ending parameters of the twisted areas.
o Run
public virtual int Run()= 0
Runs this operator.
o SetAnchorPoints
public virtual void SetAnchorPoints( const CATMathPoint& iPoint1,
const CATMathPoint& iPoint2) = 0
Defines the anchor points for profile positionning.
Moving the anchor points from their initial position to intersection points between the sweeping plane and the guides, defines the 3D transformation to apply to the initial profile. Anchor points should be in the profile plane for correct behaviour of profile positionning software.
Parameters:
iPoint1
The point to anchor on first guide.
iPoint2
The point to anchor on second guide.
o SetAngularLaw
public virtual void SetAngularLaw(CATCompositeLaw* iAngularLaw) = 0
Defines an angular law to rotate the moving frame around its Z axis.
Parameters:
iAngularLaw
The pointer to the angular law. (Angles must be given in radian for circular sweep, in degree for other types of sweep)
o SetAngularLaws
public virtual void SetAngularLaws(CATCompositeLaw** iLaws,
int iNbLaws) = 0
Defines the angular laws for defining limiting guides.
To use according of the chosen sweep case.
Parameters:
iLaws
The array of the pointers to the laws.
iNbLaws
The number of laws. (Angles must be given in radian for circular sweep, in degree for other types of sweep)
o SetAreasToEliminate
public virtual void SetAreasToEliminate(CATLISTP(CATVertex)& iStartVertices,
CATLISTP(CATVertex)& iEndVertices) = 0
Defines the vertices limiting areas to eliminate from final sweep.
Parameters:
iStartVertices
The starting vertices for each areas to eliminate.
iEndVertices
The ending vertices for each area to eliminate. The same number of vertices must be defined for start and end. The vertices must be located on the first guide, but not necessarily logically related to it.
o SetCanonicSurfacesDetection
public virtual void SetCanonicSurfacesDetection(CATBoolean iCanonicSurfacesDetection= CATBoolean(1)) = 0
Sets the canonic surfaces detection mode (cones/cylinders/planes).
Parameters:
iCanonicSurfacesDetection
The canonic surface detection mode.
Legal values: TRUE for replacing nurbs surfaces by canonic surfaces, FALSE otherwise (default mode at the operator creation).
o SetCleanGuidesOption
public virtual void SetCleanGuidesOption(int iCleanOption=0,
double* iCleanMaxDeformation=NULL,
double* iCleanSmallCurvesMaxLength=NULL,
double* iCleanCurvatureThreshold=NULL) = 0
Defines clean guides option, and clean parameter values. Pointers to parameter values are to be given only when corresponding parameter is redefined, otherwise, standard parameter value will be used. Pointers may contain addresses of local variables that will be lost after call: parameter values will be copied by this method.
Parameters:
iCleanOption
The cleaning option
Legal values: 0 no cleaning will be done (default mode at operator creation), 1 cleaning will be done.
iCleanMaxDeformation
The pointer to max deformation authorized.
iCleanSmallCurvesMaxLength
The pointer to maximum length of curves to be kept.
iCleanCurvatureThreshold
The pointer to the curvature threshold.
o SetCleanProfilesOption
public virtual void SetCleanProfilesOption(int iCleanOption=0,
double* iCleanMaxDeformation=NULL,
double* iCleanSmallCurvesMaxLength=NULL,
double* iCleanCurvatureThreshold=NULL) = 0
Defines clean profiles option, and clean parameter values. Same as for guides
o SetClosureMode
public virtual void SetClosureMode()= 0
Asks for the body closure.
To use in cases the closed and planar profiles for example.
o SetConeOption
public virtual void SetConeOption()= 0
Defines cone option for segment sweep computation with reference element (behaves like a draft computation).
o SetCouplingGuides
public virtual void SetCouplingGuides(CATLISTP(CATGeometry)* iCouplingGuides) = 0
Defines additional guides to be used only for profile sections coupling.
Parameters:
iCouplingGuides
The list of pointers to the coupling guides (wire bodies).
o SetFunctionalGuides
public virtual void SetFunctionalGuides(CATLISTP(CATGeometry)* iFunctionalGuides) = 0
Defines the references for the (start and end) angles measurement for a segment or circle sweep.
To use according of the chosen sweep case.The sweep may not pass thru the functional guides.
Parameters:
iFunctionalGuides
The list of pointers to the one or two reference guides.
o SetGuideContinuityCondition
public virtual void SetGuideContinuityCondition(int iRankGuide,
CATGeometry* iReferenceElement,
CATFrFTopologicalSweepContinuity_Type iContinuityCondition=CATFrFTopologicalSweepContinuity_G1 )= 0
Sets the continuity constraints (for multi profiles sweep) for a guide.
Parameters:
iRankGuide
The rank (beginning at 1) of the guide to constraint.
iReferenceElement
The pointer to the reference element (CATPlane or skin CATBody) on which the guide must lay. Each sweep moving section is tangent to a skin CATBody reference element and normal to a CATPlane reference element.
iContinuityCondition
The type of continuity constraint.
o SetLengthLaws
public virtual void SetLengthLaws(CATCompositeLaw** iLaws,
int iNbLaws) = 0
Defines the length laws for a segment sweep.
To use according of the chosen sweep case.
Parameters:
iLaws
The array of the pointers to the laws.
iNbLaws
The number of laws.
o SetLimitGuideSlopeCondition
public virtual void SetLimitGuideSlopeCondition(int iLimitGuideRank,
CATGeometry* iReferenceElement,
CATCompositeLaw* iAngularLaw=0) = 0
Defines a slope condition for a conic or a circle sweep.
To use according of the chosen sweep case.
Parameters:
iGuideRank
The rank of the guide on which the slope condition applies (first or last guide).
iReferenceElement
The pointer to the reference element (CATPlane or skin CATBody or wire CATBody) defining the angular reference. For a null angle, conic will be tangent to the plane or skin reference element, or to the line joining guide and a wire reference element.
iAngleLaw
The pointer to the angle law.
o SetLimitGuides
public virtual void SetLimitGuides(CATLISTP(CATGeometry)* iLimitGuides) = 0
Defines the limiting guides of a segment or circle sweep. According to the number of guides, an appropriate build method is chosen. This choice can also be explicitely given for a circle sweep by the SetSolutionChoice method.
Parameters:
iLimitGuides
The pointer to the list of pointers to the (wire body or curve) guides.
o SetMiddleGuides
public virtual void SetMiddleGuides(CATLISTP(CATGeometry)* iMiddleGuides) = 0
Defines the guide defining the center of the circle for a segment or circle sweep.
To use according of the chosen sweep case.
Parameters:
iMiddleGuides
The list of pointers to the one middle guide.
o SetPlanesDetection
public virtual void SetPlanesDetection(CATBoolean iPlanesDetection= CATBoolean(1)) = 0
Sets the plane detection mode.
Parameters:
iPlanesDetection
The plane detection mode.
Legal values: TRUE for replacing planar surfaces by planes, FALSE otherwise (default mode at the operator creation).
o SetProfileAutomaticCouplingMode
public virtual void SetProfileAutomaticCouplingMode(CATFrFTopologicalSweepAutomaticCoupling_Type iCouplingType,
CATBoolean iForceErrorOnImpossibleCoupling= FALSE,
CATBoolean iCoupleFirstVerticesOnImpossibleCoupling= FALSE )= 0
Defines the profile automatic coupling mode.
Parameters:
iCouplingType
The coupling type.
iForceErrorOnImpossibleCoupling
The error management.
Legal values:
FALSE
If the required coupling mode is not possible, the operator tries to couple in a lower mode (the lowest mode is the coupling by curvilinear length).
TRUE
An error is thrown if the required coupling is not possible.
iCoupleFirstVerticesOnImpossibleCoupling
The coupling strategy when coupling is impossible.
Legal values:
FALSE
If the required coupling mode is not possible, the operator tries to couple in a lower mode or raises an error (according to iForceErrorOnImpossibleCoupling param)
TRUE
The first vertices with same continuity of the corresponding domains are coupled, even if some vertices counts are different in these domains: vertices may be left in some domains.
o SetProfileContinuityCondition
public virtual void SetProfileContinuityCondition(int iProfileRank,
CATGeometry* iReferenceElement,
CATFrFTopologicalSweepContinuity_Type iContinuityCondition=CATFrFTopologicalSweepContinuity_G1 )= 0
Sets the continuity constraints on start and end profiles (for multi profiles sweep).
The start and end profiles are not necessarily the first and last profile of the list given at the operator creation.
Parameters:
iProfileRank
The rank (beginning at 1) of the profile to constraint.
iReferenceElement
The pointer to the reference element (CATPlane or skin CATBody) on which the profile must lay. The sweep is tangent to a skin CATBody reference element and normal to a CATPlane reference element.
iContinuityCondition
The type of continuity constraint.
o SetProfileOrientation
public virtual void SetProfileOrientation(int iRankProfile,
CATFrFTopologicalSweepOrientation_Type iOrientation=CATFrFTopologicalSweepOrientation_Positive )= 0
Sets the profiles orientation (for multi profiles sweep).
Parameters:
iRankProfile
The rank (beginning at 1) of the profile.
iOrientation
The orientation of the profile:
Legal values: CATFrFTopologicalSweepOrientation_Positive to take the natural orientation of the profile, CATFrFTopologicalSweepOrientation_Negative for the opposite orientation.
o SetProfilePosition
public virtual void SetProfilePosition(CATMathAxis* iProfileAxis) = 0
Defines the axes system of the profile.
To use in case of profile position type iPositionType=1.
Parameters:
iProfileAxis
The axes system of the profile.
o SetProfilePositionType
public virtual void SetProfilePositionType(CATLONG32 iPositionType) = 0
Definition of profile positioning type for a sweep with one or two guides (Sweep unspec and birail).
Parameters:
iPositionType
The type of profile positioning.
Legal values:
1
The profile is moved according to the transformation of its axes system to the axes system of the beginning of the guide. It is possible to redefine the profile axis system by using the SetProfilePosition. If not, the axis system of the beginning of the guide is used and the sweep starts at the profile location (default mode).
2
The sweep surface passes thru the profile: the profile axes system is computed by intersecting the mean profile plane and the guide. This mean profile plane must be perpendicular to the guide.
3
The profile axes system is automatically computed as follows:
  • The origin is the start point of the profile.
  • The third (Z) direction is normal to the profile medium plane.
  • The first (X) direction joins the start and end points of the profile and is normalized.
  • The second (Y) direction is completed by the vectorial product Y = Z^X.
     ^Y
     ! ****
     !*    *
     *--->X * 
4
The sweep surface passes thru the profile. This is the same as iPositionType=2, except that the mean profile plane need not intersect guide and be perpendicular to guide.
5
for two guides sweeps only: same as iPositionType=2, except that the extremities of the profile are not moved to the intersection with guides
                     * guide points, - profile points, o profile extremities
                     initial profile:
                     o----*--...--*---o 
                     current profile with iPositionType=2:
                         *o---...---o*  (zoomed)
                     moving profile with iPositionType=4:
                     o----*--...--*---o   
o SetProfileScalingOption
public virtual void SetProfileScalingOption(CATLONG32 iScalingOption) = 0
Defines the scaling mode to apply to the profile.
Parameters:
iScalingOption
The scaling option
Legal values:
0
Inactive scaling
1
Active scaling (default mode).
o SetRadiusLaw
public virtual void SetRadiusLaw(CATCompositeLaw* iLaw) = 0
Defines the radius law of a circle sweep.
To use according of the chosen sweep case.
Parameters:
iLaw
The pointer to the radius law.
o SetRadiusLaw
public virtual void SetRadiusLaw(CATLaw* iLaw) = 0
Defines the radius law of a circle sweep.
To use according of the chosen sweep case.
Parameters:
iLaw
The pointer to the radius law.
o SetReferenceElement
public virtual void SetReferenceElement(CATGeometry* iReferenceElement) = 0
Defines a variable viewing direction (sweep unspec).
Parameters:
iReferenceElement
The pointer to the geometry (CATSurface, skin CATBody). The current point is projected onto the reference element. The viewing direction is the normal to the reference element at the projected point.
  • In case of a plane, the viewing direction is constant.
  • In case of a skin body, the guide must lay on the reference element.
o SetRelimitationMode
public virtual void SetRelimitationMode(CATFrFTopologicalSweepRelimitation_Type iRelimitationMode=CATFrFTopologicalSweepRelimitation_Off )= 0
Sets the relimitation mode by the extremity profiles.
Parameters:
iRelimitationMode
The relimitation mode.
o SetSimplification
public virtual void SetSimplification(CATBoolean iSimplify= CATBoolean(1)) = 0
Sets the simplification mode.
Parameters:
iSimplify
The simplification mode.
Legal values: TRUE for simplifying the adjacent faces on the same surface (typically plane), FALSE otherwise (default mode at the operator creation).
o SetSmoothAngleThreshold
public virtual void SetSmoothAngleThreshold(double iAngleThreshold) = 0
Defines the smooth angle threshold.
Parameters:
iSmoothAngleThreshold
The threshold for smooth (in radian); any angle below this value will be smoothed if smooth option has been activated by SetSmoothOption method.
o SetSmoothOption
public virtual void SetSmoothOption(int iSmoothOption=0) = 0
Defines a smooth option for moving frame and comb extraction.
Parameters:
iSmoothOption
The smoothing option
Legal values: 0 no smoothing will be done (default mode at operator creation), 1 smoothing will be done.
o SetSolutionChoice
public virtual void SetSolutionChoice(CATLONG32 iSolutionChoice) = 0
Defines the conic, circle or segment to keep if case of ambiguous case.
Parameters:
iSolutionChoice
The chosen part. Refer to the encyclopedia documentation.
o SetSpine
public virtual void SetSpine(CATGeometry* iSpine,
CATFrFTopologicalSweepSpine_Type iSpineType=CATFrFTopologicalSweepSpine_Explicit) = 0
Defines the spine.
Parameters:
iSpine
The pointer to the CATCurve or the wire body defining the spine. For a multi profiles sweep, if iSpine=NULL and if iSpineType=CATFrFTopologicalSweepSpine_Implicit, the spine is automatically computed using the input profiles.
iSpineType
The spine type.
o SetTwistDetection
public virtual void SetTwistDetection(int iTwistDetection) = 0
Defines the twist detection mode.
Parameters:
iTwistDetection
The twist detection mode. If 0, no twist detection. If 1, twists will be detected.
o SetUntwistMode
public virtual void SetUntwistMode(int iUntwistMode,
double iRecoilDistance=0.0) = 0
Defines the untwist mode, in which every twisted area will be computed.
Parameters:
iUntwistMode
The untwist mode. If 0, no twisted areas computation. If 1, twisted areas will be computed and available. If 2, twisted areas will be computed and suppressed from the resulting body.
iRecoilDistance
The recoil curvilinear distance on master guide to be used before and after each twisted area in suppress mode.
o SetWrapDetection
public virtual void SetWrapDetection(int iWrapDetection) = 0
Defines the wrap detection mode.
Parameters:
iWrapDetection
The wrap detection mode. If 0, no wrap computation. If 1, wrap areas will be computed.
o ValidateCaseNumber
public virtual CATLONG32 ValidateCaseNumber(CATLONG32 iExpectedCase=0) = 0
Checks the input data according to the sweep case.
Parameters:
iExpectedCase
The expected sweep case to test. If 0, the method tries to determine the appropriate case in function of the input arguments.
Refer to the encyclopedia for the detailed options of the different sweep cases.
Returns:
The case number if it is relevant, 0 if the the case number is irrelevant, or if the inputs do not correspond to the specified case.

This object is included in the file: CATFrFTopologicalSweep.h
If needed, your Imakefile.mk should include the module: CATAdvancedTopologicalOpe

Copyright © 2003, Dassault Systèmes. All rights reserved.