Open CASCADE Technology
6.9.1
|
The class BOPDS_DS provides the control the data structure for partition and boolean operation algorithms. More...
#include <BOPDS_DS.hxx>
Public Member Functions | |
BOPDS_DS () | |
Empty contructor. More... | |
virtual | ~BOPDS_DS () |
BOPDS_DS (const BOPCol_BaseAllocator &theAllocator) | |
Contructor theAllocator - the allocator to manage the memory. More... | |
void | Clear () |
Clears the contents. More... | |
const BOPCol_BaseAllocator & | Allocator () const |
Selector. More... | |
void | SetArguments (const BOPCol_ListOfShape &theLS) |
Modifier Sets the arguments [theLS] of an operation. More... | |
const BOPCol_ListOfShape & | Arguments () const |
Selector Returns the arguments of an operation. More... | |
void | Init () |
Initializes the data structure for the arguments. More... | |
Standard_Integer | NbShapes () const |
Selector Returns the total number of shapes stored. More... | |
Standard_Integer | NbSourceShapes () const |
Selector Returns the total number of source shapes stored. More... | |
Standard_Integer | NbRanges () const |
Selector Returns the number of index ranges. More... | |
const BOPDS_IndexRange & | Range (const Standard_Integer theIndex) const |
Selector Returns the index range "i". More... | |
Standard_Integer | Rank (const Standard_Integer theIndex) const |
Selector Returns the rank of the shape of index "i". More... | |
Standard_Boolean | IsNewShape (const Standard_Integer theIndex) const |
Returns true if the shape of index "i" is not the source shape/sub-shape. More... | |
Standard_Integer | Append (const BOPDS_ShapeInfo &theSI) |
Modifier Appends the information about the shape [theSI] to the data structure Returns the index of theSI in the data structure. More... | |
Standard_Integer | Append (const TopoDS_Shape &theS) |
Modifier Appends the default information about the shape [theS] to the data structure Returns the index of theS in the data structure. More... | |
const BOPDS_ShapeInfo & | ShapeInfo (const Standard_Integer theIndex) const |
Selector Returns the information about the shape with index theIndex. More... | |
BOPDS_ShapeInfo & | ChangeShapeInfo (const Standard_Integer theIndex) |
Selector/Modifier Returns the information about the shape with index theIndex. More... | |
const TopoDS_Shape & | Shape (const Standard_Integer theIndex) const |
Selector Returns the shape with index theIndex. More... | |
Standard_Integer | Index (const TopoDS_Shape &theS) const |
Selector Returns the index of the shape theS. More... | |
const BOPDS_VectorOfListOfPaveBlock & | PaveBlocksPool () const |
Selector Returns the information about pave blocks on source edges. More... | |
BOPDS_VectorOfListOfPaveBlock & | ChangePaveBlocksPool () |
Selector/Modifier Returns the information about pave blocks on source edges. More... | |
Standard_Boolean | HasPaveBlocks (const Standard_Integer theIndex) const |
Query Returns true if the shape with index theIndex has the information about pave blocks. More... | |
const BOPDS_ListOfPaveBlock & | PaveBlocks (const Standard_Integer theIndex) const |
Selector Returns the pave blocks for the shape with index theIndex. More... | |
BOPDS_ListOfPaveBlock & | ChangePaveBlocks (const Standard_Integer theIndex) |
Selector/Modifier Returns the pave blocks for the shape with index theIndex. More... | |
void | UpdatePaveBlocks () |
Update the pave blocks for the all shapes in data structure. More... | |
void | UpdatePaveBlock (const Handle< BOPDS_PaveBlock > &thePB) |
Update the pave block thePB. More... | |
void | UpdateCommonBlock (const Handle< BOPDS_CommonBlock > &theCB) |
Update the common block theCB. More... | |
Standard_Boolean | IsCommonBlock (const Handle< BOPDS_PaveBlock > &thePB) const |
Query Returns true if the pave block is common block. More... | |
Handle< BOPDS_CommonBlock > | CommonBlock (const Handle< BOPDS_PaveBlock > &thePB) const |
Selector Returns the common block. More... | |
void | SetCommonBlock (const Handle< BOPDS_PaveBlock > &thePB, const Handle< BOPDS_CommonBlock > &theCB) |
Modifier Sets the common block <theCB> More... | |
Handle< BOPDS_PaveBlock > | RealPaveBlock (const Handle< BOPDS_PaveBlock > &thePB) const |
Selector Returns the real first pave block. More... | |
Standard_Boolean | IsCommonBlockOnEdge (const Handle< BOPDS_PaveBlock > &thePB) const |
Query Returns true if common block contains more then one pave block. More... | |
const BOPDS_VectorOfFaceInfo & | FaceInfoPool () const |
Selector Returns the information about state of faces. More... | |
Standard_Boolean | HasFaceInfo (const Standard_Integer theIndex) const |
Query Returns true if the shape with index theIndex has the information about state of face. More... | |
const BOPDS_FaceInfo & | FaceInfo (const Standard_Integer theIndex) const |
Selector Returns the state of face with index theIndex. More... | |
BOPDS_FaceInfo & | ChangeFaceInfo (const Standard_Integer theIndex) |
Selector/Modifier Returns the state of face with index theIndex. More... | |
void | UpdateFaceInfoIn (const Standard_Integer theIndex) |
Update the state In of face with index theIndex. More... | |
void | UpdateFaceInfoOn (const Standard_Integer theIndex) |
Update the state On of face with index theIndex. More... | |
void | FaceInfoOn (const Standard_Integer theIndex, BOPDS_IndexedMapOfPaveBlock &theMPB, BOPCol_MapOfInteger &theMVP) |
Selector Returns the state On [theMPB,theMVP] of face with index theIndex. More... | |
void | FaceInfoIn (const Standard_Integer theIndex, BOPDS_IndexedMapOfPaveBlock &theMPB, BOPCol_MapOfInteger &theMVP) |
Selector Returns the state In [theMPB,theMVP] of face with index theIndex. More... | |
void | AloneVertices (const Standard_Integer theF, BOPCol_ListOfInteger &theLI) const |
Selector Returns the indices of alone vertices for the face with index theIndex. More... | |
void | RefineFaceInfoOn () |
Refine the state On for the all faces having state information. More... | |
void | VerticesOnIn (const Standard_Integer theF1, const Standard_Integer theF2, BOPCol_MapOfInteger &theMI, BOPDS_IndexedMapOfPaveBlock &aMPB) const |
Returns the indices of vertices and pave blocks that are On/In for the faces with indices theF1, theF2. More... | |
void | SharedEdges (const Standard_Integer theF1, const Standard_Integer theF2, BOPCol_ListOfInteger &theLI, const BOPCol_BaseAllocator &theAllocator) |
Returns the indices of edges that are shared for the faces with indices theF1, theF2. More... | |
BOPCol_DataMapOfIntegerInteger & | ShapesSD () |
Selector Returns the collection same domain shapes. More... | |
void | AddShapeSD (const Standard_Integer theIndex, const Standard_Integer theIndexSD) |
Modifier Adds the information about same domain shapes with indices theIndex, theIndexSD. More... | |
Standard_Boolean | HasShapeSD (const Standard_Integer theIndex, Standard_Integer &theIndexSD) const |
Query Returns true if the shape with index theIndex has the same domain shape. In this case theIndexSD will contain the index of same domain shape found. More... | |
BOPDS_VectorOfInterfVV & | InterfVV () |
Selector/Modifier Returns the collection of interferences Vertex/Vertex. More... | |
BOPDS_VectorOfInterfVE & | InterfVE () |
Selector/Modifier Returns the collection of interferences Vertex/Edge. More... | |
BOPDS_VectorOfInterfVF & | InterfVF () |
Selector/Modifier Returns the collection of interferences Vertex/Face. More... | |
BOPDS_VectorOfInterfEE & | InterfEE () |
Selector/Modifier Returns the collection of interferences Edge/Edge. More... | |
BOPDS_VectorOfInterfEF & | InterfEF () |
Selector/Modifier Returns the collection of interferences Edge/Face. More... | |
BOPDS_VectorOfInterfFF & | InterfFF () |
Selector/Modifier Returns the collection of interferences Face/Face. More... | |
BOPDS_VectorOfInterfVZ & | InterfVZ () |
Selector/Modifier Returns the collection of interferences Vertex/Solid. More... | |
BOPDS_VectorOfInterfEZ & | InterfEZ () |
Selector/Modifier Returns the collection of interferences Edge/Solid. More... | |
BOPDS_VectorOfInterfFZ & | InterfFZ () |
Selector/Modifier Returns the collection of interferences Face/Solid. More... | |
BOPDS_VectorOfInterfZZ & | InterfZZ () |
Selector/Modifier Returns the collection of interferences Solid/Solid. More... | |
void | AddInterf (const Standard_Integer theI1, const Standard_Integer theI2) |
Modifier Adds the information about an interference between shapes with indices theI1, theI2 to the summary table of interferences. More... | |
Standard_Boolean | HasInterf (const Standard_Integer theI) const |
Query Returns true if the shape with index theI is interferred. More... | |
Standard_Boolean | HasInterf (const Standard_Integer theI1, const Standard_Integer theI2) const |
Query Returns true if the shapes with indices theI1, theI2 are interferred. More... | |
Standard_Boolean | HasInterfShapeSubShapes (const Standard_Integer theI1, const Standard_Integer theI2, const Standard_Boolean theFlag=Standard_True) const |
Query Returns true if the shape with index theI1 is interfered with any sub-shape of the shape with index theI2 (theFlag=true) all sub-shapes of the shape with index theI2 (theFlag=false) More... | |
Standard_Boolean | HasInterfSubShapes (const Standard_Integer theI1, const Standard_Integer theI2) const |
Query Returns true if the shapes with indices theI1, theI2 have interferred sub-shapes. More... | |
const BOPDS_MapOfPassKey & | Interferences () const |
Selector Returns the table of interferences. More... | |
void | Dump () const |
void | SortPaveBlocks (const Handle< BOPDS_CommonBlock > &theCB) |
Standard_Boolean | IsToSort (const Handle< BOPDS_CommonBlock > &theCB, Standard_Integer &theI) |
Standard_Boolean | IsSubShape (const Standard_Integer theI1, const Standard_Integer theI2) |
void | Paves (const Standard_Integer theIndex, BOPDS_ListOfPave &theLP) |
Fills theLP with sorted paves of the shape with index theIndex. More... | |
void | UpdateEdgeTolerance (const Standard_Integer theIndex, const Standard_Real theTolerance) |
Updates tolerance of the sub-shapes of the shape with index <theIndex>. More... | |
void | SetFuzzyValue (const Standard_Real theFuzz) |
Sets the extended tolerance. More... | |
Standard_Real | FuzzyValue () const |
Returns the extended tolerance. More... | |
void | SetDefaultTolerances () |
Reverts the tolerance values of unchanged entities to default values. More... | |
Static Public Member Functions | |
static Standard_Integer | NbInterfTypes () |
Returns the number of types of the interferences. More... | |
Protected Member Functions | |
void | InitPaveBlocks (const Standard_Integer theIndex) |
Initializes the pave blocks for the shape with index theIndex. More... | |
void | InitFaceInfo (const Standard_Integer theIndex) |
Initializes the state of face with index theIndex. More... | |
void | InitShape (const Standard_Integer theIndex, const TopoDS_Shape &theS, BOPCol_BaseAllocator &theAllocator, BOPCol_DataMapOfShapeInteger &theMSI) |
Standard_Boolean | CheckCoincidence (const Handle< BOPDS_PaveBlock > &thePB1, const Handle< BOPDS_PaveBlock > &thePB2) |
void | BuildBndBoxSolid (const Standard_Integer theIndex, Bnd_Box &theBox) |
Computes bouding box <theBox> for the solid with DS-index <theIndex> More... | |
The class BOPDS_DS provides the control the data structure for partition and boolean operation algorithms.
The data structure has the following contents:
BOPDS_DS::BOPDS_DS | ( | ) |
Empty contructor.
|
virtual |
BOPDS_DS::BOPDS_DS | ( | const BOPCol_BaseAllocator & | theAllocator | ) |
Contructor theAllocator - the allocator to manage the memory.
void BOPDS_DS::AddInterf | ( | const Standard_Integer | theI1, |
const Standard_Integer | theI2 | ||
) |
Modifier Adds the information about an interference between shapes with indices theI1, theI2 to the summary table of interferences.
void BOPDS_DS::AddShapeSD | ( | const Standard_Integer | theIndex, |
const Standard_Integer | theIndexSD | ||
) |
Modifier Adds the information about same domain shapes with indices theIndex, theIndexSD.
const BOPCol_BaseAllocator& BOPDS_DS::Allocator | ( | ) | const |
Selector.
void BOPDS_DS::AloneVertices | ( | const Standard_Integer | theF, |
BOPCol_ListOfInteger & | theLI | ||
) | const |
Selector Returns the indices of alone vertices for the face with index theIndex.
Standard_Integer BOPDS_DS::Append | ( | const BOPDS_ShapeInfo & | theSI | ) |
Modifier Appends the information about the shape [theSI] to the data structure Returns the index of theSI in the data structure.
Standard_Integer BOPDS_DS::Append | ( | const TopoDS_Shape & | theS | ) |
Modifier Appends the default information about the shape [theS] to the data structure Returns the index of theS in the data structure.
const BOPCol_ListOfShape& BOPDS_DS::Arguments | ( | ) | const |
Selector Returns the arguments of an operation.
|
protected |
Computes bouding box <theBox> for the solid with DS-index <theIndex>
BOPDS_FaceInfo& BOPDS_DS::ChangeFaceInfo | ( | const Standard_Integer | theIndex | ) |
Selector/Modifier Returns the state of face with index theIndex.
BOPDS_ListOfPaveBlock& BOPDS_DS::ChangePaveBlocks | ( | const Standard_Integer | theIndex | ) |
Selector/Modifier Returns the pave blocks for the shape with index theIndex.
BOPDS_VectorOfListOfPaveBlock& BOPDS_DS::ChangePaveBlocksPool | ( | ) |
Selector/Modifier Returns the information about pave blocks on source edges.
BOPDS_ShapeInfo& BOPDS_DS::ChangeShapeInfo | ( | const Standard_Integer | theIndex | ) |
Selector/Modifier Returns the information about the shape with index theIndex.
|
protected |
void BOPDS_DS::Clear | ( | ) |
Clears the contents.
Handle< BOPDS_CommonBlock > BOPDS_DS::CommonBlock | ( | const Handle< BOPDS_PaveBlock > & | thePB | ) | const |
Selector Returns the common block.
void BOPDS_DS::Dump | ( | ) | const |
const BOPDS_FaceInfo& BOPDS_DS::FaceInfo | ( | const Standard_Integer | theIndex | ) | const |
Selector Returns the state of face with index theIndex.
void BOPDS_DS::FaceInfoIn | ( | const Standard_Integer | theIndex, |
BOPDS_IndexedMapOfPaveBlock & | theMPB, | ||
BOPCol_MapOfInteger & | theMVP | ||
) |
Selector Returns the state In [theMPB,theMVP] of face with index theIndex.
void BOPDS_DS::FaceInfoOn | ( | const Standard_Integer | theIndex, |
BOPDS_IndexedMapOfPaveBlock & | theMPB, | ||
BOPCol_MapOfInteger & | theMVP | ||
) |
Selector Returns the state On [theMPB,theMVP] of face with index theIndex.
const BOPDS_VectorOfFaceInfo& BOPDS_DS::FaceInfoPool | ( | ) | const |
Selector Returns the information about state of faces.
Standard_Real BOPDS_DS::FuzzyValue | ( | ) | const |
Returns the extended tolerance.
Standard_Boolean BOPDS_DS::HasFaceInfo | ( | const Standard_Integer | theIndex | ) | const |
Query Returns true if the shape with index theIndex has the information about state of face.
Standard_Boolean BOPDS_DS::HasInterf | ( | const Standard_Integer | theI | ) | const |
Query Returns true if the shape with index theI is interferred.
Standard_Boolean BOPDS_DS::HasInterf | ( | const Standard_Integer | theI1, |
const Standard_Integer | theI2 | ||
) | const |
Query Returns true if the shapes with indices theI1, theI2 are interferred.
Standard_Boolean BOPDS_DS::HasInterfShapeSubShapes | ( | const Standard_Integer | theI1, |
const Standard_Integer | theI2, | ||
const Standard_Boolean | theFlag = Standard_True |
||
) | const |
Query Returns true if the shape with index theI1 is interfered with any sub-shape of the shape with index theI2 (theFlag=true) all sub-shapes of the shape with index theI2 (theFlag=false)
Standard_Boolean BOPDS_DS::HasInterfSubShapes | ( | const Standard_Integer | theI1, |
const Standard_Integer | theI2 | ||
) | const |
Query Returns true if the shapes with indices theI1, theI2 have interferred sub-shapes.
Standard_Boolean BOPDS_DS::HasPaveBlocks | ( | const Standard_Integer | theIndex | ) | const |
Query Returns true if the shape with index theIndex has the information about pave blocks.
Standard_Boolean BOPDS_DS::HasShapeSD | ( | const Standard_Integer | theIndex, |
Standard_Integer & | theIndexSD | ||
) | const |
Query Returns true if the shape with index theIndex has the same domain shape. In this case theIndexSD will contain the index of same domain shape found.
interferences
Standard_Integer BOPDS_DS::Index | ( | const TopoDS_Shape & | theS | ) | const |
Selector Returns the index of the shape theS.
void BOPDS_DS::Init | ( | ) |
Initializes the data structure for the arguments.
|
protected |
Initializes the state of face with index theIndex.
|
protected |
Initializes the pave blocks for the shape with index theIndex.
|
protected |
BOPDS_VectorOfInterfEE& BOPDS_DS::InterfEE | ( | ) |
Selector/Modifier Returns the collection of interferences Edge/Edge.
BOPDS_VectorOfInterfEF& BOPDS_DS::InterfEF | ( | ) |
Selector/Modifier Returns the collection of interferences Edge/Face.
const BOPDS_MapOfPassKey& BOPDS_DS::Interferences | ( | ) | const |
Selector Returns the table of interferences.
debug
BOPDS_VectorOfInterfEZ& BOPDS_DS::InterfEZ | ( | ) |
Selector/Modifier Returns the collection of interferences Edge/Solid.
BOPDS_VectorOfInterfFF& BOPDS_DS::InterfFF | ( | ) |
Selector/Modifier Returns the collection of interferences Face/Face.
BOPDS_VectorOfInterfFZ& BOPDS_DS::InterfFZ | ( | ) |
Selector/Modifier Returns the collection of interferences Face/Solid.
BOPDS_VectorOfInterfVE& BOPDS_DS::InterfVE | ( | ) |
Selector/Modifier Returns the collection of interferences Vertex/Edge.
BOPDS_VectorOfInterfVF& BOPDS_DS::InterfVF | ( | ) |
Selector/Modifier Returns the collection of interferences Vertex/Face.
BOPDS_VectorOfInterfVV& BOPDS_DS::InterfVV | ( | ) |
Selector/Modifier Returns the collection of interferences Vertex/Vertex.
BOPDS_VectorOfInterfVZ& BOPDS_DS::InterfVZ | ( | ) |
Selector/Modifier Returns the collection of interferences Vertex/Solid.
BOPDS_VectorOfInterfZZ& BOPDS_DS::InterfZZ | ( | ) |
Selector/Modifier Returns the collection of interferences Solid/Solid.
Standard_Boolean BOPDS_DS::IsCommonBlock | ( | const Handle< BOPDS_PaveBlock > & | thePB | ) | const |
Query Returns true if the pave block is common block.
Standard_Boolean BOPDS_DS::IsCommonBlockOnEdge | ( | const Handle< BOPDS_PaveBlock > & | thePB | ) | const |
Query Returns true if common block contains more then one pave block.
Standard_Boolean BOPDS_DS::IsNewShape | ( | const Standard_Integer | theIndex | ) | const |
Returns true if the shape of index "i" is not the source shape/sub-shape.
Standard_Boolean BOPDS_DS::IsSubShape | ( | const Standard_Integer | theI1, |
const Standard_Integer | theI2 | ||
) |
Standard_Boolean BOPDS_DS::IsToSort | ( | const Handle< BOPDS_CommonBlock > & | theCB, |
Standard_Integer & | theI | ||
) |
|
static |
Returns the number of types of the interferences.
Standard_Integer BOPDS_DS::NbRanges | ( | ) | const |
Selector Returns the number of index ranges.
Standard_Integer BOPDS_DS::NbShapes | ( | ) | const |
Selector Returns the total number of shapes stored.
Standard_Integer BOPDS_DS::NbSourceShapes | ( | ) | const |
Selector Returns the total number of source shapes stored.
const BOPDS_ListOfPaveBlock& BOPDS_DS::PaveBlocks | ( | const Standard_Integer | theIndex | ) | const |
Selector Returns the pave blocks for the shape with index theIndex.
const BOPDS_VectorOfListOfPaveBlock& BOPDS_DS::PaveBlocksPool | ( | ) | const |
Selector Returns the information about pave blocks on source edges.
void BOPDS_DS::Paves | ( | const Standard_Integer | theIndex, |
BOPDS_ListOfPave & | theLP | ||
) |
Fills theLP with sorted paves of the shape with index theIndex.
const BOPDS_IndexRange& BOPDS_DS::Range | ( | const Standard_Integer | theIndex | ) | const |
Selector Returns the index range "i".
Standard_Integer BOPDS_DS::Rank | ( | const Standard_Integer | theIndex | ) | const |
Selector Returns the rank of the shape of index "i".
Handle< BOPDS_PaveBlock > BOPDS_DS::RealPaveBlock | ( | const Handle< BOPDS_PaveBlock > & | thePB | ) | const |
Selector Returns the real first pave block.
void BOPDS_DS::RefineFaceInfoOn | ( | ) |
Refine the state On for the all faces having state information.
++
void BOPDS_DS::SetArguments | ( | const BOPCol_ListOfShape & | theLS | ) |
Modifier Sets the arguments [theLS] of an operation.
void BOPDS_DS::SetCommonBlock | ( | const Handle< BOPDS_PaveBlock > & | thePB, |
const Handle< BOPDS_CommonBlock > & | theCB | ||
) |
Modifier Sets the common block <theCB>
void BOPDS_DS::SetDefaultTolerances | ( | ) |
Reverts the tolerance values of unchanged entities to default values.
void BOPDS_DS::SetFuzzyValue | ( | const Standard_Real | theFuzz | ) |
Sets the extended tolerance.
const TopoDS_Shape& BOPDS_DS::Shape | ( | const Standard_Integer | theIndex | ) | const |
Selector Returns the shape with index theIndex.
const BOPDS_ShapeInfo& BOPDS_DS::ShapeInfo | ( | const Standard_Integer | theIndex | ) | const |
Selector Returns the information about the shape with index theIndex.
BOPCol_DataMapOfIntegerInteger& BOPDS_DS::ShapesSD | ( | ) |
Selector Returns the collection same domain shapes.
void BOPDS_DS::SharedEdges | ( | const Standard_Integer | theF1, |
const Standard_Integer | theF2, | ||
BOPCol_ListOfInteger & | theLI, | ||
const BOPCol_BaseAllocator & | theAllocator | ||
) |
Returns the indices of edges that are shared for the faces with indices theF1, theF2.
same domain shapes
void BOPDS_DS::SortPaveBlocks | ( | const Handle< BOPDS_CommonBlock > & | theCB | ) |
void BOPDS_DS::UpdateCommonBlock | ( | const Handle< BOPDS_CommonBlock > & | theCB | ) |
Update the common block theCB.
void BOPDS_DS::UpdateEdgeTolerance | ( | const Standard_Integer | theIndex, |
const Standard_Real | theTolerance | ||
) |
Updates tolerance of the sub-shapes of the shape with index <theIndex>.
void BOPDS_DS::UpdateFaceInfoIn | ( | const Standard_Integer | theIndex | ) |
Update the state In of face with index theIndex.
void BOPDS_DS::UpdateFaceInfoOn | ( | const Standard_Integer | theIndex | ) |
Update the state On of face with index theIndex.
void BOPDS_DS::UpdatePaveBlock | ( | const Handle< BOPDS_PaveBlock > & | thePB | ) |
Update the pave block thePB.
void BOPDS_DS::UpdatePaveBlocks | ( | ) |
Update the pave blocks for the all shapes in data structure.
void BOPDS_DS::VerticesOnIn | ( | const Standard_Integer | theF1, |
const Standard_Integer | theF2, | ||
BOPCol_MapOfInteger & | theMI, | ||
BOPDS_IndexedMapOfPaveBlock & | aMPB | ||
) | const |
Returns the indices of vertices and pave blocks that are On/In for the faces with indices theF1, theF2.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |