Open CASCADE Technology
7.2.0
|
The history keeps the following relations between the input shapes (S1, ..., Sm) and output shapes (T1, ..., Tn): 1) an output shape Tj is generated from an input shape Si: Tj <= G(Si); 2) a output shape Tj is modified from an input shape Si: Tj <= M(Si); 3) an input shape (Si) is removed: R(Si) == 1. More...
#include <BRepTools_History.hxx>
Public Types | |
enum | TRelationType { TRelationType_Removed, TRelationType_Generated, TRelationType_Modified } |
The types of the historical relations. More... | |
Public Types inherited from Standard_Transient | |
typedef void | base_type |
Returns a type descriptor about this object. More... | |
Public Member Functions | |
void | AddGenerated (const TopoDS_Shape &theInitial, const TopoDS_Shape &theGenerated) |
Methods to set the history. More... | |
void | AddModified (const TopoDS_Shape &theInitial, const TopoDS_Shape &theModified) |
Set the second shape as modified one from the first shape. More... | |
void | Remove (const TopoDS_Shape &theRemoved) |
Set the shape as removed one. More... | |
void | ReplaceGenerated (const TopoDS_Shape &theInitial, const TopoDS_Shape &theGenerated) |
Set the second shape as the only generated one from the first one. More... | |
void | ReplaceModified (const TopoDS_Shape &theInitial, const TopoDS_Shape &theModified) |
Set the second shape as the only modified one from the first one. More... | |
void | Clear () |
Clears the history. More... | |
const TopTools_ListOfShape & | Generated (const TopoDS_Shape &theInitial) const |
Methods to read the history. More... | |
const TopTools_ListOfShape & | Modified (const TopoDS_Shape &theInitial) const |
Returns all shapes modified from the shape. More... | |
Standard_Boolean | IsRemoved (const TopoDS_Shape &theInitial) const |
Returns 'true' if the shape is removed. More... | |
void | Merge (const Handle< BRepTools_History > &theHistory23) |
A method to merge a next history to this history. More... | |
Public Member Functions inherited from Standard_Transient | |
Standard_Transient () | |
Empty constructor. More... | |
Standard_Transient (const Standard_Transient &) | |
Copy constructor – does nothing. More... | |
Standard_Transient & | operator= (const Standard_Transient &) |
Assignment operator, needed to avoid copying reference counter. More... | |
virtual | ~Standard_Transient () |
Destructor must be virtual. More... | |
virtual void | Delete () const |
Memory deallocator for transient classes. More... | |
virtual const opencascade::handle< Standard_Type > & | DynamicType () const |
Returns a type descriptor about this object. More... | |
Standard_Boolean | IsInstance (const opencascade::handle< Standard_Type > &theType) const |
Returns a true value if this is an instance of Type. More... | |
Standard_Boolean | IsInstance (const Standard_CString theTypeName) const |
Returns a true value if this is an instance of TypeName. More... | |
Standard_Boolean | IsKind (const opencascade::handle< Standard_Type > &theType) const |
Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More... | |
Standard_Boolean | IsKind (const Standard_CString theTypeName) const |
Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More... | |
Standard_Transient * | This () const |
Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero. More... | |
Standard_Integer | GetRefCount () const |
Get the reference counter of this object. More... | |
void | IncrementRefCounter () const |
Increments the reference counter of this object. More... | |
Standard_Integer | DecrementRefCounter () const |
Decrements the reference counter of this object; returns the decremented value. More... | |
Static Public Member Functions | |
static Standard_Boolean | IsSupportedType (const TopoDS_Shape &theShape) |
Returns 'true' if the type of the shape is supported by the history. More... | |
Static Public Member Functions inherited from Standard_Transient | |
static const char * | get_type_name () |
Returns a type descriptor about this object. More... | |
static const opencascade::handle< Standard_Type > & | get_type_descriptor () |
Returns type descriptor of Standard_Transient class. More... | |
The history keeps the following relations between the input shapes (S1, ..., Sm) and output shapes (T1, ..., Tn): 1) an output shape Tj is generated from an input shape Si: Tj <= G(Si); 2) a output shape Tj is modified from an input shape Si: Tj <= M(Si); 3) an input shape (Si) is removed: R(Si) == 1.
The relations are kept only for shapes of types vertex, edge, face, and solid.
The last relation means that: 1) shape Si is not an output shape and 2) no any shape is generated or modified (produced) from shape Si: R(Si) == 1 ==> Si != Tj, G(Si) == 0, M(Si) == 0.
No any shape could be generated and modified from the same shape simultaneously: sets G(Si) and M(Si) are not intersected (G(Si) ^ M(Si) == 0).
Each output shape should be: 1) an input shape or 2) generated or modified from an input shape (even generated from the implicit null shape if necessary): Tj == Si V (exists Si that Tj <= G(Si) U M(Si)).
Recommendations to choose between relations 'generated' and 'modified': 1) a shape is generated from input shapes if it dimension is greater or smaller than the dimensions of the input shapes; 2) a shape is generated from input shapes if these shapes are also output shapes; 3) a shape is generated from input shapes of the same dimension if it is produced by joining shapes generated from these shapes; 4) a shape is modified from an input shape if it replaces the input shape by changes of the location, the tolerance, the bounds of the parametrical space (the faces for a solid), the parametrization and/or by applying of an approximation; 5) a shape is modified from input shapes of the same dimension if it is produced by joining shapes modified from these shapes.
Two sequential histories:
During the merge: 1) if shape Tj is generated from shape Si then each shape generated or modified from shape Tj is considered as a shape generated from shape Si among shapes Q1, ..., Ql: Tj <= G12(Si), Qk <= G23(Tj) U M23(Tj) ==> Qk <= G13(Si). 2) if shape Tj is modified from shape Si, shape Qk is generated from shape Tj then shape Qk is considered as a shape generated from shape Si among shapes Q1, ..., Ql: Tj <= M12(Si), Qk <= G23(Tj) ==> Qk <= G13(Si); 3) if shape Tj is modified from shape Si, shape Qk is modified from shape Tj then shape Qk is considered as a shape modified from shape Si among shapes Q1, ..., Ql: Tj <= M12(Si), Qk <= M23(Tj) ==> Qk <= M13(Si);
void BRepTools_History::AddGenerated | ( | const TopoDS_Shape & | theInitial, |
const TopoDS_Shape & | theGenerated | ||
) |
Methods to set the history.
Set the second shape as generated one from the first shape.
void BRepTools_History::AddModified | ( | const TopoDS_Shape & | theInitial, |
const TopoDS_Shape & | theModified | ||
) |
Set the second shape as modified one from the first shape.
|
inline |
Clears the history.
const TopTools_ListOfShape& BRepTools_History::Generated | ( | const TopoDS_Shape & | theInitial | ) | const |
Methods to read the history.
Returns all shapes generated from the shape.
Standard_Boolean BRepTools_History::IsRemoved | ( | const TopoDS_Shape & | theInitial | ) | const |
Returns 'true' if the shape is removed.
|
inlinestatic |
Returns 'true' if the type of the shape is supported by the history.
void BRepTools_History::Merge | ( | const Handle< BRepTools_History > & | theHistory23 | ) |
A method to merge a next history to this history.
Merges the next history to this history.
const TopTools_ListOfShape& BRepTools_History::Modified | ( | const TopoDS_Shape & | theInitial | ) | const |
Returns all shapes modified from the shape.
void BRepTools_History::Remove | ( | const TopoDS_Shape & | theRemoved | ) |
Set the shape as removed one.
void BRepTools_History::ReplaceGenerated | ( | const TopoDS_Shape & | theInitial, |
const TopoDS_Shape & | theGenerated | ||
) |
Set the second shape as the only generated one from the first one.
void BRepTools_History::ReplaceModified | ( | const TopoDS_Shape & | theInitial, |
const TopoDS_Shape & | theModified | ||
) |
Set the second shape as the only modified one from the first one.