Open CASCADE Technology  7.4.0
Data Structures

BOPAlgo_MakePeriodic Class Reference

BOPAlgo_MakePeriodic is the tool for making an arbitrary shape periodic in 3D space in specified directions. More...

#include <BOPAlgo_MakePeriodic.hxx>

Inheritance diagram for BOPAlgo_MakePeriodic:
Inheritance graph
[legend]

Data Structures

struct  PeriodicityParams
 Structure to keep all periodicity parameters: More...
 

Public Member Functions

Constructor
 BOPAlgo_MakePeriodic ()
 Empty constructor. More...
 
Setting the shape to make it periodic
void SetShape (const TopoDS_Shape &theShape)
 Sets the shape to make it periodic. More...
 
Setters/Getters for periodicity parameters structure
void SetPeriodicityParameters (const PeriodicityParams &theParams)
 Sets the periodicity parameters. More...
 
const PeriodicityParamsPeriodicityParameters () const
 Sets the periodicity parameters. More...
 
Methods for setting/getting periodicity info using ID as a direction
void MakePeriodic (const Standard_Integer theDirectionID, const Standard_Boolean theIsPeriodic, const Standard_Real thePeriod=0.0)
 Sets the flag to make the shape periodic in specified direction: More...
 
Standard_Boolean IsPeriodic (const Standard_Integer theDirectionID) const
 Returns the info about Periodicity of the shape in specified direction. More...
 
Standard_Real Period (const Standard_Integer theDirectionID) const
 Returns the Period of the shape in specified direction. More...
 
Named methods for setting/getting info about shape's periodicity
void MakeXPeriodic (const Standard_Boolean theIsPeriodic, const Standard_Real thePeriod=0.0)
 Sets the flag to make the shape periodic in X direction. More...
 
Standard_Boolean IsXPeriodic () const
 Returns the info about periodicity of the shape in X direction. More...
 
Standard_Real XPeriod () const
 Returns the XPeriod of the shape. More...
 
void MakeYPeriodic (const Standard_Boolean theIsPeriodic, const Standard_Real thePeriod=0.0)
 Sets the flag to make the shape periodic in Y direction. More...
 
Standard_Boolean IsYPeriodic () const
 Returns the info about periodicity of the shape in Y direction. More...
 
Standard_Real YPeriod () const
 Returns the YPeriod of the shape. More...
 
void MakeZPeriodic (const Standard_Boolean theIsPeriodic, const Standard_Real thePeriod=0.0)
 Sets the flag to make the shape periodic in Z direction. More...
 
Standard_Boolean IsZPeriodic () const
 Returns the info about periodicity of the shape in Z direction. More...
 
Standard_Real ZPeriod () const
 Returns the ZPeriod of the shape. More...
 
Methods for setting/getting trimming info taking Direction ID as a parameter
void SetTrimmed (const Standard_Integer theDirectionID, const Standard_Boolean theIsTrimmed, const Standard_Real theFirst=0.0)
 Defines whether the input shape is already trimmed in specified direction to fit the period in this direction. Direction is defined by an ID: More...
 
Standard_Boolean IsInputTrimmed (const Standard_Integer theDirectionID) const
 Returns whether the input shape was trimmed in the specified direction. More...
 
Standard_Real PeriodFirst (const Standard_Integer theDirectionID) const
 Returns the first periodic parameter in the specified direction. More...
 
Named methods for setting/getting trimming info
void SetXTrimmed (const Standard_Boolean theIsTrimmed, const Standard_Boolean theFirst=0.0)
 Defines whether the input shape is already trimmed in X direction to fit the X period. If the shape is not trimmed it is required to set the first parameter for the X period. The algorithm will make the shape fit into the period. More...
 
Standard_Boolean IsInputXTrimmed () const
 Returns whether the input shape was already trimmed for X period. More...
 
Standard_Real XPeriodFirst () const
 Returns the first parameter for the X period. More...
 
void SetYTrimmed (const Standard_Boolean theIsTrimmed, const Standard_Boolean theFirst=0.0)
 Defines whether the input shape is already trimmed in Y direction to fit the Y period. If the shape is not trimmed it is required to set the first parameter for the Y period. The algorithm will make the shape fit into the period. More...
 
Standard_Boolean IsInputYTrimmed () const
 Returns whether the input shape was already trimmed for Y period. More...
 
Standard_Real YPeriodFirst () const
 Returns the first parameter for the Y period. More...
 
void SetZTrimmed (const Standard_Boolean theIsTrimmed, const Standard_Boolean theFirst=0.0)
 Defines whether the input shape is already trimmed in Z direction to fit the Z period. If the shape is not trimmed it is required to set the first parameter for the Z period. The algorithm will make the shape fit into the period. More...
 
Standard_Boolean IsInputZTrimmed () const
 Returns whether the input shape was already trimmed for Z period. More...
 
Standard_Real ZPeriodFirst () const
 Returns the first parameter for the Z period. More...
 
Performing the operation
void Perform ()
 Makes the shape periodic in necessary directions. More...
 
Using the algorithm to repeat the shape
const TopoDS_ShapeRepeatShape (const Standard_Integer theDirectionID, const Standard_Integer theTimes)
 Performs repetition of the shape in specified direction required number of times. Negative value of times means that the repetition should be perform in negative direction. Makes the repeated shape a base for following repetitions. More...
 
const TopoDS_ShapeXRepeat (const Standard_Integer theTimes)
 Repeats the shape in X direction specified number of times. Negative value of times means that the repetition should be perform in negative X direction. Makes the repeated shape a base for following repetitions. More...
 
const TopoDS_ShapeYRepeat (const Standard_Integer theTimes)
 Repeats the shape in Y direction specified number of times. Negative value of times means that the repetition should be perform in negative Y direction. Makes the repeated shape a base for following repetitions. More...
 
const TopoDS_ShapeZRepeat (const Standard_Integer theTimes)
 Repeats the shape in Z direction specified number of times. Negative value of times means that the repetition should be perform in negative Z direction. Makes the repeated shape a base for following repetitions. More...
 
Starting the repetitions over
const TopoDS_ShapeRepeatedShape () const
 Returns the repeated shape. More...
 
void ClearRepetitions ()
 Clears all performed repetitions. The next repetition will be performed on the base shape. More...
 
Obtaining the result shape
const TopoDS_ShapeShape () const
 Returns the resulting periodic shape. More...
 
Getting the identical shapes
const TopTools_ListOfShapeGetTwins (const TopoDS_Shape &theS) const
 Returns the identical shapes for the given shape located on the opposite periodic side. Returns empty list in case the shape has no twin. More...
 
Getting the History of the algorithm
const Handle< BRepTools_History > & History () const
 Returns the History of the algorithm. More...
 
Clearing the algorithm from previous runs
void Clear ()
 Clears the algorithm from previous runs. More...
 
- Public Member Functions inherited from BOPAlgo_Options
 BOPAlgo_Options ()
 Empty constructor. More...
 
 BOPAlgo_Options (const Handle< NCollection_BaseAllocator > &theAllocator)
 Constructor with allocator. More...
 
virtual ~BOPAlgo_Options ()
 Destructor. More...
 
const Handle< NCollection_BaseAllocator > & Allocator () const
 Returns allocator. More...
 
void AddError (const Handle< Message_Alert > &theAlert)
 Adds the alert as error (fail) More...
 
void AddWarning (const Handle< Message_Alert > &theAlert)
 Adds the alert as warning. More...
 
Standard_Boolean HasErrors () const
 Returns true if algorithm has failed. More...
 
Standard_Boolean HasError (const Handle< Standard_Type > &theType) const
 Returns true if algorithm has generated error of specified type. More...
 
Standard_Boolean HasWarnings () const
 Returns true if algorithm has generated some warning alerts. More...
 
Standard_Boolean HasWarning (const Handle< Standard_Type > &theType) const
 Returns true if algorithm has generated warning of specified type. More...
 
const Handle< Message_Report > & GetReport () const
 Returns report collecting all errors and warnings. More...
 
void DumpErrors (Standard_OStream &theOS) const
 Dumps the error status into the given stream. More...
 
void DumpWarnings (Standard_OStream &theOS) const
 Dumps the warning statuses into the given stream. More...
 
void ClearWarnings ()
 Clears the warnings of the algorithm. More...
 
void SetFuzzyValue (const Standard_Real theFuzz)
 Sets the additional tolerance. More...
 
Standard_Real FuzzyValue () const
 Returns the additional tolerance. More...
 
void SetProgressIndicator (const Handle< Message_ProgressIndicator > &theObj)
 Set the Progress Indicator object. More...
 
void SetUseOBB (const Standard_Boolean theUseOBB)
 Enables/Disables the usage of OBB. More...
 
Standard_Boolean UseOBB () const
 Returns the flag defining usage of OBB. More...
 
void SetRunParallel (const Standard_Boolean theFlag)
 Set the flag of parallel processing if <theFlag> is true the parallel processing is switched on if <theFlag> is false the parallel processing is switched off. More...
 
Standard_Boolean RunParallel () const
 Returns the flag of parallel processing. More...
 

Static Public Member Functions

Conversion of the integer to ID of periodic direction
static Standard_Integer ToDirectionID (const Standard_Integer theDirectionID)
 Converts the integer to ID of periodic direction. More...
 
- Static Public Member Functions inherited from BOPAlgo_Options
static Standard_Boolean GetParallelMode ()
 Gets the global parallel mode. More...
 
static void SetParallelMode (const Standard_Boolean theNewMode)
 Sets the global parallel mode. More...
 

Protected Member Functions

Protected methods performing the operation
void CheckData ()
 Checks the validity of input data. More...
 
void Trim ()
 Trims the shape to fit to the periodic bounds. More...
 
void MakeIdentical ()
 Makes the shape identical on opposite sides. More...
 
void SplitNegative ()
 Splits the negative side of the shape with the geometry located on the positive side copying the geometry from positive side to the negative. More...
 
void SplitPositive ()
 Splits the positive side of the shape with the geometry located on the negative side of the shape. Ensures that the geometries on the opposite sides will be identical. Associates the identical opposite sub-shapes. More...
 
void SplitShape (const TopTools_ListOfShape &theTools, Handle< BRepTools_History > theSplitShapeHistory=NULL, Handle< BRepTools_History > theSplitToolsHistory=NULL)
 Splits the shape by the given tools, copying the geometry of coinciding parts from the given tools to the split shape. More...
 
void UpdateTwins (const BRepTools_History &theTranslationHistory, const BRepTools_History &theGluingHistory)
 Updates the map of twins after periodic shape repetition. More...
 
- Protected Member Functions inherited from BOPAlgo_Options
void UserBreak () const
 Breaks the execution if the break signal is indicated by myProgressIndicator. More...
 

Protected Attributes

Fields
TopoDS_Shape myInputShape
 Input shape to make periodic. More...
 
PeriodicityParams myPeriodicityParams
 Periodicity parameters. More...
 
TopoDS_Shape myShape
 Resulting periodic shape (base for repetitions) More...
 
TopoDS_Shape myRepeatedShape
 Resulting shape after making repetitions of the base. More...
 
Standard_Real myRepeatPeriod [3]
 XYZ repeat period. More...
 
TopTools_DataMapOfShapeListOfShape myRepeatedTwins
 Map of associations of the identical sub-shapes after repetition of the periodic shape. More...
 
TopTools_DataMapOfShapeListOfShape myTwins
 Map of associations of the identical sub-shapes located on the opposite sides of the shape. More...
 
Handle< BRepTools_HistorymySplitHistory
 Split history - history of shapes modification after the split for making the shape periodic. More...
 
Handle< BRepTools_HistorymyHistory
 Final history of shapes modifications (to include the history of shape repetition) More...
 
- Protected Attributes inherited from BOPAlgo_Options
Handle< NCollection_BaseAllocatormyAllocator
 Enables/Disables the usage of OBB. More...
 
Handle< Message_ReportmyReport
 Enables/Disables the usage of OBB. More...
 
Standard_Boolean myRunParallel
 Enables/Disables the usage of OBB. More...
 
Standard_Real myFuzzyValue
 Enables/Disables the usage of OBB. More...
 
Handle< Message_ProgressIndicatormyProgressIndicator
 Enables/Disables the usage of OBB. More...
 
Standard_Boolean myUseOBB
 Enables/Disables the usage of OBB. More...
 

Detailed Description

BOPAlgo_MakePeriodic is the tool for making an arbitrary shape periodic in 3D space in specified directions.

Periodicity of the shape means that the shape can be repeated in any periodic direction any number of times without creation of the new geometry or splits.

The idea is to make the shape look identical on the opposite sides of the periodic directions, so when translating the copy of a shape on the period there will be no coinciding parts of different dimensions.

If necessary the algorithm will trim the shape to fit it into the requested period by splitting it by the planes limiting the shape's requested period.

For making the shape periodic in certain direction the algorithm performs the following steps:

The algorithm also associates the identical (or twin) shapes located on the opposite sides of the result shape. Using the GetTwins() method it is possible to get the twin shapes from the opposite sides.

Algorithm also provides the methods to repeat the periodic shape in periodic directions. The subsequent repetitions are performed on the repeated shape, thus repeating the shape two times in X direction will create result in three shapes (original plus two copies). Single subsequent repetition will result already in 6 shapes. The repetitions can be cleared and started over.

The algorithm supports History of shapes modifications, thus it is possible to track how the shape has been changed to make it periodic and what new shapes have been created during repetitions.

The algorithm supports the parallel processing mode, which allows faster completion of the operations.

The algorithm supports the Error/Warning system and returns the following alerts:

Example of usage of the algorithm:

TopoDS_Shape aShape = ...; // The shape to make periodic
Standard_Boolean bMakeXPeriodic = ...; // Flag for making or not the shape periodic in X direction
Standard_Real aXPeriod = ...; // X period for the shape
Standard_Boolean isXTrimmed = ...; // Flag defining whether it is necessary to trimming
// the shape to fit to X period
Standard_Real aXFirst = ...; // Start of the X period
// (really necessary only if the trimming is requested)
Standard_Boolean bRunParallel = ...; // Parallel processing mode or single
BOPAlgo_MakePeriodic aPeriodicityMaker; // Periodicity maker
aPeriodicityMaker.SetShape(aShape); // Set the shape
aPeriodicityMaker.MakeXPeriodic(bMakePeriodic, aXPeriod); // Making the shape periodic in X direction
aPeriodicityMaker.SetTrimmed(isXTrimmed, aXFirst); // Trim the shape to fit X period
aPeriodicityMaker.SetRunParallel(bRunParallel); // Set the parallel processing mode
aPeriodicityMaker.Perform(); // Performing the operation
if (aPeriodicityMaker.HasErrors()) // Check for the errors
{
// errors treatment
Standard_SStream aSStream;
aPeriodicityMaker.DumpErrors(aSStream);
return;
}
if (aPeriodicityMaker.HasWarnings()) // Check for the warnings
{
// warnings treatment
Standard_SStream aSStream;
aPeriodicityMaker.DumpWarnings(aSStream);
}
const TopoDS_Shape& aPeriodicShape = aPeriodicityMaker.Shape(); // Result periodic shape
aPeriodicityMaker.XRepeat(2); // Making repetitions
const TopoDS_Shape& aRepeat = aPeriodicityMaker.RepeatedShape(); // Getting the repeated shape
aPeriodicityMaker.ClearRepetitions(); // Clearing the repetitions

Constructor & Destructor Documentation

◆ BOPAlgo_MakePeriodic()

BOPAlgo_MakePeriodic::BOPAlgo_MakePeriodic ( )
inline

Empty constructor.

Member Function Documentation

◆ CheckData()

void BOPAlgo_MakePeriodic::CheckData ( )
protected

Checks the validity of input data.

◆ Clear()

void BOPAlgo_MakePeriodic::Clear ( )
inlinevirtual

Clears the algorithm from previous runs.

Reimplemented from BOPAlgo_Options.

◆ ClearRepetitions()

void BOPAlgo_MakePeriodic::ClearRepetitions ( )
inline

Clears all performed repetitions. The next repetition will be performed on the base shape.

◆ GetTwins()

const TopTools_ListOfShape& BOPAlgo_MakePeriodic::GetTwins ( const TopoDS_Shape theS) const
inline

Returns the identical shapes for the given shape located on the opposite periodic side. Returns empty list in case the shape has no twin.

Parameters
theS[in] Shape to get the twins for.

◆ History()

const Handle< BRepTools_History >& BOPAlgo_MakePeriodic::History ( ) const
inline

Returns the History of the algorithm.

◆ IsInputTrimmed()

Standard_Boolean BOPAlgo_MakePeriodic::IsInputTrimmed ( const Standard_Integer  theDirectionID) const
inline

Returns whether the input shape was trimmed in the specified direction.

Parameters
theDirectionID[in] The direction's ID.

◆ IsInputXTrimmed()

Standard_Boolean BOPAlgo_MakePeriodic::IsInputXTrimmed ( ) const
inline

Returns whether the input shape was already trimmed for X period.

◆ IsInputYTrimmed()

Standard_Boolean BOPAlgo_MakePeriodic::IsInputYTrimmed ( ) const
inline

Returns whether the input shape was already trimmed for Y period.

◆ IsInputZTrimmed()

Standard_Boolean BOPAlgo_MakePeriodic::IsInputZTrimmed ( ) const
inline

Returns whether the input shape was already trimmed for Z period.

◆ IsPeriodic()

Standard_Boolean BOPAlgo_MakePeriodic::IsPeriodic ( const Standard_Integer  theDirectionID) const
inline

Returns the info about Periodicity of the shape in specified direction.

Parameters
theDirectionID[in] The direction's ID.

◆ IsXPeriodic()

Standard_Boolean BOPAlgo_MakePeriodic::IsXPeriodic ( ) const
inline

Returns the info about periodicity of the shape in X direction.

◆ IsYPeriodic()

Standard_Boolean BOPAlgo_MakePeriodic::IsYPeriodic ( ) const
inline

Returns the info about periodicity of the shape in Y direction.

◆ IsZPeriodic()

Standard_Boolean BOPAlgo_MakePeriodic::IsZPeriodic ( ) const
inline

Returns the info about periodicity of the shape in Z direction.

◆ MakeIdentical()

void BOPAlgo_MakePeriodic::MakeIdentical ( )
protected

Makes the shape identical on opposite sides.

◆ MakePeriodic()

void BOPAlgo_MakePeriodic::MakePeriodic ( const Standard_Integer  theDirectionID,
const Standard_Boolean  theIsPeriodic,
const Standard_Real  thePeriod = 0.0 
)
inline

Sets the flag to make the shape periodic in specified direction:

  • 0 - X direction;
  • 1 - Y direction;
  • 2 - Z direction.
Parameters
theDirectionID[in] The direction's ID;
theIsPeriodic[in] Flag defining periodicity in given direction;
thePeriod[in] Required period in given direction.

◆ MakeXPeriodic()

void BOPAlgo_MakePeriodic::MakeXPeriodic ( const Standard_Boolean  theIsPeriodic,
const Standard_Real  thePeriod = 0.0 
)
inline

Sets the flag to make the shape periodic in X direction.

Parameters
theIsPeriodic[in] Flag defining periodicity in X direction;
thePeriod[in] Required period in X direction.

◆ MakeYPeriodic()

void BOPAlgo_MakePeriodic::MakeYPeriodic ( const Standard_Boolean  theIsPeriodic,
const Standard_Real  thePeriod = 0.0 
)
inline

Sets the flag to make the shape periodic in Y direction.

Parameters
theIsPeriodic[in] Flag defining periodicity in Y direction;
thePeriod[in] Required period in Y direction.

◆ MakeZPeriodic()

void BOPAlgo_MakePeriodic::MakeZPeriodic ( const Standard_Boolean  theIsPeriodic,
const Standard_Real  thePeriod = 0.0 
)
inline

Sets the flag to make the shape periodic in Z direction.

Parameters
theIsPeriodic[in] Flag defining periodicity in Z direction;
thePeriod[in] Required period in Z direction.

◆ Perform()

void BOPAlgo_MakePeriodic::Perform ( )

Makes the shape periodic in necessary directions.

◆ Period()

Standard_Real BOPAlgo_MakePeriodic::Period ( const Standard_Integer  theDirectionID) const
inline

Returns the Period of the shape in specified direction.

Parameters
theDirectionID[in] The direction's ID.

◆ PeriodFirst()

Standard_Real BOPAlgo_MakePeriodic::PeriodFirst ( const Standard_Integer  theDirectionID) const
inline

Returns the first periodic parameter in the specified direction.

Parameters
theDirectionID[in] The direction's ID.

◆ PeriodicityParameters()

const PeriodicityParams& BOPAlgo_MakePeriodic::PeriodicityParameters ( ) const
inline

Sets the periodicity parameters.

Parameters
theParams[in] Periodicity parameters

◆ RepeatedShape()

const TopoDS_Shape& BOPAlgo_MakePeriodic::RepeatedShape ( ) const
inline

Returns the repeated shape.

◆ RepeatShape()

const TopoDS_Shape& BOPAlgo_MakePeriodic::RepeatShape ( const Standard_Integer  theDirectionID,
const Standard_Integer  theTimes 
)

Performs repetition of the shape in specified direction required number of times. Negative value of times means that the repetition should be perform in negative direction. Makes the repeated shape a base for following repetitions.

Parameters
theDirectionID[in] The direction's ID;
theTimes[in] Requested number of repetitions.

◆ SetPeriodicityParameters()

void BOPAlgo_MakePeriodic::SetPeriodicityParameters ( const PeriodicityParams theParams)
inline

Sets the periodicity parameters.

Parameters
theParams[in] Periodicity parameters

◆ SetShape()

void BOPAlgo_MakePeriodic::SetShape ( const TopoDS_Shape theShape)
inline

Sets the shape to make it periodic.

Parameters
theShape[in] The shape to make periodic.

◆ SetTrimmed()

void BOPAlgo_MakePeriodic::SetTrimmed ( const Standard_Integer  theDirectionID,
const Standard_Boolean  theIsTrimmed,
const Standard_Real  theFirst = 0.0 
)
inline

Defines whether the input shape is already trimmed in specified direction to fit the period in this direction. Direction is defined by an ID:

  • 0 - X direction;
  • 1 - Y direction;
  • 2 - Z direction.

If the shape is not trimmed it is required to set the first parameter of the period in that direction. The algorithm will make the shape fit into the period.

Before calling this method, the shape has to be set to be periodic in this direction.

Parameters
theDirectionID[in] The direction's ID;
theIsTrimmed[in] The flag defining trimming of the shape in given direction;
theFirst[in] The first periodic parameter in the given direction.

◆ SetXTrimmed()

void BOPAlgo_MakePeriodic::SetXTrimmed ( const Standard_Boolean  theIsTrimmed,
const Standard_Boolean  theFirst = 0.0 
)
inline

Defines whether the input shape is already trimmed in X direction to fit the X period. If the shape is not trimmed it is required to set the first parameter for the X period. The algorithm will make the shape fit into the period.

Before calling this method, the shape has to be set to be periodic in this direction.

Parameters
theIsTrimmed[in] Flag defining whether the shape is already trimmed in X direction to fit the X period;
theFirst[in] The first X periodic parameter.

◆ SetYTrimmed()

void BOPAlgo_MakePeriodic::SetYTrimmed ( const Standard_Boolean  theIsTrimmed,
const Standard_Boolean  theFirst = 0.0 
)
inline

Defines whether the input shape is already trimmed in Y direction to fit the Y period. If the shape is not trimmed it is required to set the first parameter for the Y period. The algorithm will make the shape fit into the period.

Before calling this method, the shape has to be set to be periodic in this direction.

Parameters
theIsTrimmed[in] Flag defining whether the shape is already trimmed in Y direction to fit the Y period;
theFirst[in] The first Y periodic parameter.

◆ SetZTrimmed()

void BOPAlgo_MakePeriodic::SetZTrimmed ( const Standard_Boolean  theIsTrimmed,
const Standard_Boolean  theFirst = 0.0 
)
inline

Defines whether the input shape is already trimmed in Z direction to fit the Z period. If the shape is not trimmed it is required to set the first parameter for the Z period. The algorithm will make the shape fit into the period.

Before calling this method, the shape has to be set to be periodic in this direction.

Parameters
theIsTrimmed[in] Flag defining whether the shape is already trimmed in Z direction to fit the Z period;
theFirst[in] The first Z periodic parameter.

◆ Shape()

const TopoDS_Shape& BOPAlgo_MakePeriodic::Shape ( ) const
inline

Returns the resulting periodic shape.

◆ SplitNegative()

void BOPAlgo_MakePeriodic::SplitNegative ( )
protected

Splits the negative side of the shape with the geometry located on the positive side copying the geometry from positive side to the negative.

◆ SplitPositive()

void BOPAlgo_MakePeriodic::SplitPositive ( )
protected

Splits the positive side of the shape with the geometry located on the negative side of the shape. Ensures that the geometries on the opposite sides will be identical. Associates the identical opposite sub-shapes.

◆ SplitShape()

void BOPAlgo_MakePeriodic::SplitShape ( const TopTools_ListOfShape theTools,
Handle< BRepTools_History theSplitShapeHistory = NULL,
Handle< BRepTools_History theSplitToolsHistory = NULL 
)
protected

Splits the shape by the given tools, copying the geometry of coinciding parts from the given tools to the split shape.

Parameters
theTools[in] The tools to split the shape and take the geometry for coinciding parts.
theSplitShapeHistory[out] The history of shape split
theSplitToolsHistory[out] The history of tools modifications during the split

◆ ToDirectionID()

static Standard_Integer BOPAlgo_MakePeriodic::ToDirectionID ( const Standard_Integer  theDirectionID)
inlinestatic

Converts the integer to ID of periodic direction.

◆ Trim()

void BOPAlgo_MakePeriodic::Trim ( )
protected

Trims the shape to fit to the periodic bounds.

◆ UpdateTwins()

void BOPAlgo_MakePeriodic::UpdateTwins ( const BRepTools_History theTranslationHistory,
const BRepTools_History theGluingHistory 
)
protected

Updates the map of twins after periodic shape repetition.

Parameters
theTranslationHistory[in] The history of translation of the periodic shape.
theGluingHistory[in] The history of gluing of the repeated shapes.

◆ XPeriod()

Standard_Real BOPAlgo_MakePeriodic::XPeriod ( ) const
inline

Returns the XPeriod of the shape.

◆ XPeriodFirst()

Standard_Real BOPAlgo_MakePeriodic::XPeriodFirst ( ) const
inline

Returns the first parameter for the X period.

◆ XRepeat()

const TopoDS_Shape& BOPAlgo_MakePeriodic::XRepeat ( const Standard_Integer  theTimes)
inline

Repeats the shape in X direction specified number of times. Negative value of times means that the repetition should be perform in negative X direction. Makes the repeated shape a base for following repetitions.

Parameters
theTimes[in] Requested number of repetitions.

◆ YPeriod()

Standard_Real BOPAlgo_MakePeriodic::YPeriod ( ) const
inline

Returns the YPeriod of the shape.

◆ YPeriodFirst()

Standard_Real BOPAlgo_MakePeriodic::YPeriodFirst ( ) const
inline

Returns the first parameter for the Y period.

◆ YRepeat()

const TopoDS_Shape& BOPAlgo_MakePeriodic::YRepeat ( const Standard_Integer  theTimes)
inline

Repeats the shape in Y direction specified number of times. Negative value of times means that the repetition should be perform in negative Y direction. Makes the repeated shape a base for following repetitions.

Parameters
theTimes[in] Requested number of repetitions.

◆ ZPeriod()

Standard_Real BOPAlgo_MakePeriodic::ZPeriod ( ) const
inline

Returns the ZPeriod of the shape.

◆ ZPeriodFirst()

Standard_Real BOPAlgo_MakePeriodic::ZPeriodFirst ( ) const
inline

Returns the first parameter for the Z period.

◆ ZRepeat()

const TopoDS_Shape& BOPAlgo_MakePeriodic::ZRepeat ( const Standard_Integer  theTimes)
inline

Repeats the shape in Z direction specified number of times. Negative value of times means that the repetition should be perform in negative Z direction. Makes the repeated shape a base for following repetitions.

Parameters
theTimes[in] Requested number of repetitions.

Field Documentation

◆ myHistory

Handle< BRepTools_History > BOPAlgo_MakePeriodic::myHistory
protected

Final history of shapes modifications (to include the history of shape repetition)

◆ myInputShape

TopoDS_Shape BOPAlgo_MakePeriodic::myInputShape
protected

Input shape to make periodic.

◆ myPeriodicityParams

PeriodicityParams BOPAlgo_MakePeriodic::myPeriodicityParams
protected

Periodicity parameters.

◆ myRepeatedShape

TopoDS_Shape BOPAlgo_MakePeriodic::myRepeatedShape
protected

Resulting shape after making repetitions of the base.

◆ myRepeatedTwins

TopTools_DataMapOfShapeListOfShape BOPAlgo_MakePeriodic::myRepeatedTwins
protected

Map of associations of the identical sub-shapes after repetition of the periodic shape.

◆ myRepeatPeriod

Standard_Real BOPAlgo_MakePeriodic::myRepeatPeriod[3]
protected

XYZ repeat period.

◆ myShape

TopoDS_Shape BOPAlgo_MakePeriodic::myShape
protected

Resulting periodic shape (base for repetitions)

◆ mySplitHistory

Handle< BRepTools_History > BOPAlgo_MakePeriodic::mySplitHistory
protected

Split history - history of shapes modification after the split for making the shape periodic.

◆ myTwins

TopTools_DataMapOfShapeListOfShape BOPAlgo_MakePeriodic::myTwins
protected

Map of associations of the identical sub-shapes located on the opposite sides of the shape.


The documentation for this class was generated from the following file: