All Frameworks Class Hierarchy This Framework Previous Next Indexes
TopologicalOperators Class CATTopCorner
Mathematics.CATCGMVirtual
|
+---GeometricObjects.CATCGMOperator
|
+---NewTopologicalObjects.CATTopOperator
|
+---NewTopologicalObjects.CATTopMultiResult
|
+---TopologicalOperators.CATTopTangentCurveOperator
|
+---CATTopCorner
Usage: you must use this class as is. You should never derive it.
public class CATTopCorner
Class representing the operator that computes a round corner between two wire bodies.
There is no unique solution to the corner computation: the input wires
cut the corner in two portions. These two portions can be retrieved together, or one can choose
the portion to keep (CATCircleMode).
Moreover, when choosing the Direct or Complementary modes, the operator
can assemble the computed corner
on the input wires on demand (SetSupportTrimmingMode).
The center of the corner is defined at the intersection of the parallels
to the input wires. Once given a wire on a shell, there are two parallel
to a wire: one on each side. The side defines the orientation of the
parallel:
- The cross product of the normal to the shell and the tangent to the wire is positive
side (+1)
- The opposite of the cross product of the normal to the shell and the tangent
to the wire is the negative side (-1).
The CATTopCorner operator satisfies the smart mechanism: the
input bodies are not modified. A new resulting body is created,
possibly sharing data with the input bodies.
It follows the global frame of the topological operators, except that it can return several
bodies, corresponding to the multiple solution it found.
- A CATTopCorner operator is created with the CATCreateTopCorner global method.
It must be directly deleted after use. It is not streamable.
- Options can be precised with the SetXxx methods, before
asking for the computation with the Run method.
- The result is accessed with
- the GetResult method: all the computed corners are put in the same resulting body.
- the iterator on the solutions (BeginningCorner, NextCorner, GetCorner):
each solution corner is put in a different body.
If you do not want
to keep the resulting bodies, use the CATICGMContainer.Remove method to remove them from the geometric factory, after the operator deletion.
Constructor and Destructor Index
- o
~CATTopCorner()
-
Method Index
- o
BeginningCorner()
- Initializes the iterator of the resulting corners.
- o
GetCenterRadius(CATMathPoint&,double&)
- Returns the definition of the current corner.
- o
GetCircleMode(CATCircleMode&,double&,double&)
- Retrieves the relimitation mode of this corner operator.
- o
GetCorner(CATCGMJournalList*)
- Creates the current corner.
- o
GetCurOrients(CATOrientation&,CATOrientation&,CATOrientation&)
- Retrieves the orientation of the parallels used to compute the center
of the corner.
- o
GetNumberOfCorners()
- Returns the number of computed corners.
- o
GetOffsetOrientation(int&,int&,int&)
- Retrieves the defined orientations to take for the parallels to the input wires.
- o
GetResult()
- Returns all the computed corners in a single body.
- o
GetSupportTrimmingSideAndMode(CATLONG32&,CATLONG32&)
- Returns whether the input wires can be assembled in the resulting body, and how they can be assembled.
- o
NextCorner()
- Skips to the next solution corner of this CATTopCorner operator.
- o
Run()
- Runs this operator.
- o
SetCircleMode(CATCircleMode,double,double)
- Defines the relimition mode of this corner operator.
- o
SetOffsetOrientation(int,int,int)
- Defines the orientations to take for the parallels to the input wires.
- o
SetSupportTrimmingSideAndMode(CATLONG32,CATLONG32)
- Defines whether the input wires can be assembled in the resulting body, and how they can be assembled.
Constructor and Destructor
o ~CATTopCorner
public virtual ~CATTopCorner( | ) |
-
Methods
o BeginningCorner
public virtual void BeginningCorner( | )= 0 |
-
Initializes the iterator of the resulting corners.
o GetCenterRadius
public virtual void GetCenterRadius( | CATMathPoint& | ioCenter, |
| double& | ioRadius) = 0 |
-
Returns the definition of the current corner.
To be called after the GetCorner method.
- Parameters:
-
- ioCenter
- The center of the current corner.
- ioRadius
- The radius value of the current corner.
o GetCircleMode
public virtual void GetCircleMode( | CATCircleMode& | ioCircleMode, |
| double& | ioStart, |
| double& | ioEnd)=0 |
-
Retrieves the relimitation mode of this corner operator.
- Parameters:
-
- ioCircleMode
- The relimitation mode.
- ioStart
- The value is not touched.
- ioEnd
- The value is not touched.
o GetCorner
-
Creates the current corner.
- Parameters:
-
- iCurrentJournal
- The pointer to the journal corresponding to the creation of the current corner.
If NULL, the journal is not written.
- Returns:
- The pointer to the created body. If you do not want to keep it,
use the @CATICGMContainer#Remove method to remove it from the geometric factory, after the deletion
of this operator.
o GetCurOrients
-
Retrieves the orientation of the parallels used to compute the center
of the corner.
- Parameters:
-
- ioOr1
- The orientation of the parallel to the first wire.
- ioOr2
- The orientation of the parallel to the second wire.
- ioOr3
- The orientation of the parallel to the third wire, only in case of
tritangent corner.
o GetNumberOfCorners
public virtual CATLONG32 GetNumberOfCorners( | )const = 0 |
-
Returns the number of computed corners.
- Returns:
- The number of corners.
o GetOffsetOrientation
public virtual void GetOffsetOrientation( | int& | ioOrientCrv1, |
| int& | ioOrientCrv2, |
| int& | ioOrientCrv3) const=0 |
-
Retrieves the defined orientations to take for the parallels to the input wires.
- Parameters:
-
- ioOrientCrv1
- The orientation of the parallel to the first wire. If 0,
the two sides parallels are computed.
- ioOrientCrv2
- The orientation of the parallel to the second wire. If 0,
the two sides parallels are computed.
- ioOrientCrv3
- The orientation of the parallel to the third wire. If 0,
the two sides parallels are computed. In case of tritangent corner only.
o GetResult
-
Returns all the computed corners in a single body.
In this case, GetNumberOfCorners and GetResult()->GetNumberOfDomain() can be different.
- Returns:
- The pointer to the resulting body. If you do not want to keep it, use the
CATICGMContainer.Remove method to remove it from the geometric factory after the deletion of this operator.
o GetSupportTrimmingSideAndMode
-
Returns whether the input wires can be assembled in the resulting body, and how they can be assembled.
In this case, the iterator cannot be used.
- Parameters:
-
- oTrimmingSide
- The assembly side.
Legal values:
0 if the assembly can be done for all input wires,
1 if the assembly can be done just for the first input wire,
2 if the assembly can be done just for the last input wire.
- oTrimmingMode
- The assembly mode.
Legal values:
1 if the assembly must be done, 0 otherwise.
- Returns:
- 0 if the assembly is compatible with the relimitation mode, 1 otherwise.
o NextCorner
-
Skips to the next solution corner of this CATTopCorner operator.
After BeginningCorner, it skips to the first solution.
- Returns:
- The existence of the next solution.
Legal values:
- TRUE
- if there is a solution
- FALSE
- no more solution.
o Run
public virtual int Run( | )=0 |
-
Runs this operator.
o SetCircleMode
-
Defines the relimition mode of this corner operator.
- Parameters:
-
- iCircleMode
- The relimitation mode of the corner. Do not use the Angular
value.
- iStart
- Not to be used.
- iEnd
- Not to be used.
- Returns:
- 0 if the relimitation mode is compatible with the assembly mode, 1 otherwise.
In this last case, the Direct mode must be set.
o SetOffsetOrientation
public virtual void SetOffsetOrientation( | int | iOrientCrv1, |
| int | iOrientCrv2, |
| int | iOrientCrv3 | =0) =0 |
-
Defines the orientations to take for the parallels to the input wires.
- Parameters:
-
- iOrientCrv1
- The orientation of the parallel to the first wire. If 0,
the two sides parallels are computed.
- iOrientCrv2
- The orientation of the parallel to the second wire. If 0,
the two sides parallels are computed.
- iOrientCrv3
- The orientation of the parallel to the third wire. If 0,
the two sides parallels are computed. In case of tritangent corner only.
o SetSupportTrimmingSideAndMode
-
Defines whether the input wires can be assembled in the resulting body, and how they can be assembled.
- Parameters:
-
- iTrimmingSide
- The assembly side
Legal values:
0 if the assembly can be done for all input wires,
1 if the assembly can be done just for the first input wire,
2 if the assembly can be done just for the last input wire.
- iTrimmingMode
- The assembly mode.
Legal values:
1 if the assembly must be done, 0 otherwise.
- Returns:
-
Legal values:
1 if the assembly must be done, 0 otherwise.
In this last case, CATCircleMode must changed to Direct.
This object is included in the file: CATTopCorner.h
If needed, your Imakefile.mk should include the module: CATTopologicalOperators