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...
|
Empty constructor
|
enum | TRelationType { TRelationType_Removed
, TRelationType_Generated
, TRelationType_Modified
} |
| The types of the historical relations. More...
|
|
| BRepTools_History () |
| The types of the historical relations.
|
|
template<class TheAlgo> |
| BRepTools_History (const TopTools_ListOfShape &theArguments, TheAlgo &theAlgo) |
| Template constructor for History creation from the algorithm having standard history methods such as IsDeleted(), Modified() and Generated().
|
|
void | 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 | AddModified (const TopoDS_Shape &theInitial, const TopoDS_Shape &theModified) |
| Set the second shape as modified one from the first shape.
|
|
void | Remove (const TopoDS_Shape &theRemoved) |
| Set the shape as removed one.
|
|
void | ReplaceGenerated (const TopoDS_Shape &theInitial, const TopoDS_Shape &theGenerated) |
| Set the second shape as the only generated one from the first one.
|
|
void | ReplaceModified (const TopoDS_Shape &theInitial, const TopoDS_Shape &theModified) |
| Set the second shape as the only modified one from the first one.
|
|
void | Clear () |
| Clears the history.
|
|
const TopTools_ListOfShape & | Generated (const TopoDS_Shape &theInitial) const |
| Methods to read the history. Returns all shapes generated from the shape.
|
|
const TopTools_ListOfShape & | Modified (const TopoDS_Shape &theInitial) const |
| Returns all shapes modified from the shape.
|
|
Standard_Boolean | IsRemoved (const TopoDS_Shape &theInitial) const |
| Returns 'true' if the shape is removed.
|
|
Standard_Boolean | HasGenerated () const |
| Returns 'true' if there any shapes with Generated elements present.
|
|
Standard_Boolean | HasModified () const |
| Returns 'true' if there any Modified shapes present.
|
|
Standard_Boolean | HasRemoved () const |
| Returns 'true' if there any removed shapes present.
|
|
void | Merge (const Handle< BRepTools_History > &theHistory23) |
| A method to merge a next history to this history. Merges the next history to this history.
|
|
void | Merge (const BRepTools_History &theHistory23) |
| Merges the next history to this history.
|
|
template<class TheAlgo> |
void | Merge (const TopTools_ListOfShape &theArguments, TheAlgo &theAlgo) |
| Template method for merging history of the algorithm having standard history methods such as IsDeleted(), Modified() and Generated() into current history object.
|
|
void | Dump (Standard_OStream &theS) |
| A method to dump a history Prints the brief description of the history into a stream.
|
|
static Standard_Boolean | IsSupportedType (const TopoDS_Shape &theShape) |
| Returns 'true' if the type of the shape is supported by the history.
|
|
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 modified (produced) from shape Si: R(Si) == 1 ==> Si != Tj, M(Si) == 0.
It means that the input shape cannot be removed and modified simultaneously. However, the shapes may be generated from the removed shape. For instance, in Fillet operation the edges generate faces and then are removed.
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 parametric 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:
- one history (H12) of shapes S1, ..., Sm to shapes T1, ..., Tn and
- another history (H23) of shapes T1, ..., Tn to shapes Q1, ..., Ql could be merged to the single history (H13) of shapes S1, ..., Sm to shapes Q1, ..., Ql.
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);