#include <Graphic3d_Group.hxx>
Public Member Functions | |
Standard_EXPORT | Graphic3d_Group (const Handle(Graphic3d_Structure)&AStructure) |
Creates a group in the structure <astructure>. . | |
Standard_EXPORT void | Clear () |
Supress all primitives and attributes of <me>. . | |
Standard_EXPORT void | Destroy () |
Supress the group <me> in the structure. . | |
~Graphic3d_Group () | |
Standard_EXPORT void | Remove () |
Supress the group <me> in the structure. Warning: No more graphic operations in <me> after this call. //! Modifies the current modelling transform persistence (pan, zoom or rotate) //! Get the current modelling transform persistence (pan, zoom or rotate) . | |
Standard_EXPORT void | SetGroupPrimitivesAspect () |
Removes the context for all the line primitives of the group. . | |
Standard_EXPORT void | SetGroupPrimitivesAspect (const Handle(Graphic3d_AspectLine3d)&CTX) |
Modifies the context for all the line primitives of the group. . | |
Standard_EXPORT void | SetGroupPrimitivesAspect (const Handle(Graphic3d_AspectFillArea3d)&CTX) |
Modifies the context for all the face primitives of the group. . | |
Standard_EXPORT void | SetGroupPrimitivesAspect (const Handle(Graphic3d_AspectText3d)&CTX) |
Modifies the context for all the text primitives of the group. . | |
Standard_EXPORT void | SetGroupPrimitivesAspect (const Handle(Graphic3d_AspectMarker3d)&CTX) |
Modifies the context for all the marker primitives of the group. . | |
Standard_EXPORT void | SetPrimitivesAspect (const Handle(Graphic3d_AspectLine3d)&CTX) |
Modifies the current context of the group to give another aspect for all the line primitives created after this call in the group. . | |
Standard_EXPORT void | SetPrimitivesAspect (const Handle(Graphic3d_AspectFillArea3d)&CTX) |
Modifies the current context of the group to give another aspect for all the face primitives created after this call in the group. . | |
Standard_EXPORT void | SetPrimitivesAspect (const Handle(Graphic3d_AspectText3d)&CTX) |
Modifies the current context of the group to give another aspect for all the text primitives created after this call in the group. . | |
Standard_EXPORT void | SetPrimitivesAspect (const Handle(Graphic3d_AspectMarker3d)&CTX) |
Modifies the current context of the group to give another aspect for all the marker primitives created after this call in the group. . | |
Standard_EXPORT void | SetMinMaxValues (const Standard_Real XMin, const Standard_Real YMin, const Standard_Real ZMin, const Standard_Real XMax, const Standard_Real YMax, const Standard_Real ZMax) |
Sets the coordinates of the boundary box of the group <me>. . | |
Standard_EXPORT Standard_Integer | PickId () const |
Returns the pick identifier of the group <me>. Category: Methods to manage the pick identifier Warning: Returns 0 if the pick identifier is not defined. . | |
Standard_EXPORT void | RemovePickId () |
Removes the pick identifier of the group <me>. Category: Methods to manage the pick identifier Warning: Now the Pick Identifier is null. . | |
Standard_EXPORT void | SetPickId (const Standard_Integer Id) |
Places a pick identifier in the group <me>. Category: Methods to manage the pick identifier Warning: A Pick Identifier is an integer greater than zero. Raises PickIdDefinitionError if <id> is a negative value. . | |
Standard_EXPORT void | Marker (const Graphic3d_Vertex &APoint, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a marker in position <apoint> which will be drawn with the current attribute (AspectMarker). . | |
Standard_EXPORT void | MarkerSet (const Graphic3d_Array1OfVertex &ListVertex, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a group of markers defined by a table of vertices. . | |
Standard_EXPORT void | Polygon (const Graphic3d_Array1OfVertex &ListVertex, const Graphic3d_TypeOfPolygon AType=Graphic3d_TOP_CONVEX, const Standard_Boolean EvalMinMax=Standard_True) |
Links up points to create a face drawn using the current fill attributes (AspectFillArea3d)) The first and last points are not duplicates. . | |
Standard_EXPORT void | Polygon (const Graphic3d_Array1OfVertex &ListVertex, const Graphic3d_Vector &Normal, const Graphic3d_TypeOfPolygon AType=Graphic3d_TOP_CONVEX, const Standard_Boolean EvalMinMax=Standard_True) |
Links up points to create a face drawn using the current fill attributes (AspectFillArea3d)) The first and last points are not duplicates. The normal to the polygon is defined normalised. . | |
Standard_EXPORT void | Polygon (const Graphic3d_Array1OfVertexN &ListVertex, const Graphic3d_TypeOfPolygon AType=Graphic3d_TOP_CONVEX, const Standard_Boolean EvalMinMax=Standard_True) |
Links up points to create a face drawn using the current fill attributes (AspectFillArea3d)) The first and last points are not duplicates. The normal is defined and normalised for each vertex. . | |
Standard_EXPORT void | Polygon (const Graphic3d_Array1OfVertexN &ListVertex, const Graphic3d_Vector &Normal, const Graphic3d_TypeOfPolygon AType=Graphic3d_TOP_CONVEX, const Standard_Boolean EvalMinMax=Standard_True) |
Links up points to create a face drawn using the current fill attributes (AspectFillArea3d)) The first and last points are not duplicates. The normal is defined for each vertex. The normal to the polygon is defined normalised. . | |
Standard_EXPORT void | Polygon (const Graphic3d_Array1OfVertexNT &ListVertex, const Graphic3d_TypeOfPolygon AType=Graphic3d_TOP_CONVEX, const Standard_Boolean EvalMinMax=Standard_True) |
Links up points to create a face drawn using the current fill attributes (AspectFillArea3d)) The first and last points are not duplicates. The normal is defined and normalised for each vertex. The texture coordinate is defined for each vertex. . | |
Standard_EXPORT void | Polygon (const TColStd_Array1OfInteger &Bounds, const Graphic3d_Array1OfVertex &ListVertex, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a face with holes. The face is described by the total number of vertices on the external contour and around the holes, and by the list of vertices. The face will be drawn using the current fill attributes (AspectFillArea3d)) The first and last points are not duplicates. Bounds : total number of interior and exterior vertices ListVertex : a list of the interior and exterior vertices . | |
Standard_EXPORT void | Polygon (const TColStd_Array1OfInteger &Bounds, const Graphic3d_Array1OfVertex &ListVertex, const Graphic3d_Vector &Normal, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a face with holes. The face is described by the total number of vertices on the external contour and around the holes, and by the list of vertices. The face will be drawn using the current fill attributes (AspectFillArea3d)) The first and last points are not duplicates. The normal to the polygon is normalised. Bounds : total number of interior and exterior vertices ListVertex : a list of the interior and exterior vertices . | |
Standard_EXPORT void | Polygon (const TColStd_Array1OfInteger &Bounds, const Graphic3d_Array1OfVertexN &ListVertex, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a face with holes. The face is described by the total number of vertices on the external contour and around the holes, and by the list of vertices. The face will be drawn using the current fill attributes (AspectFillArea3d)) The first and last points are not duplicates. Bounds : total number of interior and exterior vertices ListVertex : a list of the interior and exterior vertices . | |
Standard_EXPORT void | Polygon (const TColStd_Array1OfInteger &Bounds, const Graphic3d_Array1OfVertexN &ListVertex, const Graphic3d_Vector &Normal, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a face with holes. The face is described by the total number of vertices on the external contour and around the holes, and by the list of vertices. The face will be drawn using the current fill attributes (AspectFillArea3d)) The first and last points are not duplicates. The normal to the polygon is normalised. Bounds : total number of interior and exterior vertices ListVertex : a list of the interior and exterior vertices . | |
Standard_EXPORT void | PolygonSet (const TColStd_Array1OfInteger &Bounds, const Graphic3d_Array1OfVertex &ListVertex, const Graphic3d_TypeOfPolygon AType=Graphic3d_TOP_CONVEX, const Standard_Boolean EvalMinMax=Standard_True) |
Links up points to create a set of face drawn using the current fill attributes (AspectFillArea3d)) The first and last points are not duplicates. . | |
Standard_EXPORT void | Polyline (const Graphic3d_Vertex &APT1, const Graphic3d_Vertex &APT2, const Standard_Boolean EvalMinMax=Standard_True) |
Links up points to create a line drawn using the current line attributes (AspectLine) . | |
Standard_EXPORT void | Polyline (const Graphic3d_Array1OfVertex &ListVertex, const Standard_Boolean EvalMinMax=Standard_True) |
Links up points to create a line drawn using the current line attributes (AspectLine) . | |
Standard_EXPORT void | Polyline (const Graphic3d_Array1OfVertexC &ListVertex, const Standard_Boolean EvalMinMax=Standard_True) |
Links up points to create a line drawn using the current line attributes (AspectLine) except for the colour which is defined for each vertex. . | |
Standard_EXPORT void | QuadrangleMesh (const Graphic3d_Array2OfVertex &ListVertex, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a group of quadrilaterals from a list of points, such that their vertices are: Ki,j; Ki,j+1; Ki+1,j+1; Ki+1,j. The quadrilaterals will be drawn according to the current attributes (AspectFillArea3d). Category: Methods to create Quadrangle Warning: Raises GroupDefinitionError if <listvertex> contains less than four points. . | |
Standard_EXPORT void | QuadrangleMesh (const Graphic3d_Array2OfVertexN &ListVertex, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a group of quadrilaterals from a list of points, such that their vertices are: Ki,j; Ki,j+1; Ki+1,j+1; Ki+1,j. The quadrilaterals will be drawn according to the current attributes (AspectFillArea3d). For each vertex the normal is given. Category: Methods to create Quadrangle Warning: Raises GroupDefinitionError if <listvertex> contains less than four points. . | |
Standard_EXPORT void | QuadrangleMesh (const Graphic3d_Array2OfVertexNT &ListVertex, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a group of quadrilaterals from a list of points, such that their vertices are: Ki,j; Ki,j+1; Ki+1,j+1; Ki+1,j. The quadrilaterals will be drawn according to the current attributes (AspectFillArea3d). For each vertex the normal is given. For each vertex a texture coordinate is given. Category: Methods to create Quadrangle Warning: Raises GroupDefinitionError if <listvertex> contains less than four points. . | |
Standard_EXPORT void | QuadrangleSet (const Graphic3d_Array1OfVertex &ListVertex, const Aspect_Array1OfEdge &ListEdge, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a group of quadrangles defined by a table of vertices and a table of edges, visible or not. Category: Methods to create Quadrangle Warning: Raises GroupDefinitionError if <listvertex> contains less than four points or if <listedge> contains less than four edges. . | |
Standard_EXPORT void | QuadrangleSet (const Graphic3d_Array1OfVertexN &ListVertex, const Aspect_Array1OfEdge &ListEdge, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a group of quadrangles defined by a table of vertices and a table of edges, visible or not. For each vertex the normal is given. Category: Methods to create Quadrangle Warning: Raises GroupDefinitionError if <listvertex> contains less than four points or if <listedge> contains less than four edges. . | |
Standard_EXPORT void | QuadrangleSet (const Graphic3d_Array1OfVertexNT &ListVertex, const Aspect_Array1OfEdge &ListEdge, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a group of quadrangles defined by a table of vertices and a table of edges, visible or not. For each vertex the normal is given. For each vertex a texture coordinate is given. Category: Methods to create Quadrangle Warning: Raises GroupDefinitionError if <listvertex> contains less than four points or if <listedge> contains less than four edges. . | |
Standard_EXPORT void | QuadrangleSet (const Graphic3d_Array1OfVertexC &ListVertex, const Aspect_Array1OfEdge &ListEdge, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a group of quadrangles defined by a table of vertices and a table of edges, visible or not. For each vertex the color is given. Category: Methods to create Quadrangle Warning: Raises GroupDefinitionError if <listvertex> contains less than four points or if <listedge> contains less than four edges. . | |
Standard_EXPORT void | QuadrangleSet (const Graphic3d_Array1OfVertexNC &ListVertex, const Aspect_Array1OfEdge &ListEdge, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a group of quadrangles defined by a table of vertices and a table of edges, visible or not. For each vertex the normal and the color are given. Category: Methods to create Quadrangle Warning: Raises GroupDefinitionError if <listvertex> contains less than four points or if <listedge> contains less than four edges. . | |
Standard_EXPORT void | Text (const Standard_CString AText, const Graphic3d_Vertex &APoint, const Standard_Real AHeight, const Quantity_PlaneAngle AAngle, const Graphic3d_TextPath ATp, const Graphic3d_HorizontalTextAlignment AHta, const Graphic3d_VerticalTextAlignment AVta, const Standard_Boolean EvalMinMax=Standard_True) |
Creates the string <atext> at position <apoint>. The 3D point of attachment is projected. The text is written in the plane of projection. The attributes are given with respect to the plane of projection. AHeight : Height of text. (Relative to the Normalized Projection Coordinates (NPC) Space). AAngle : Orientation of the text (with respect to the horizontal). . | |
Standard_EXPORT void | Text (const Standard_CString AText, const Graphic3d_Vertex &APoint, const Standard_Real AHeight, const Standard_Boolean EvalMinMax=Standard_True) |
Creates the string <atext> at position <apoint>. The 3D point of attachment is projected. The text is written in the plane of projection. The attributes are given with respect to the plane of projection. AHeight : Height of text. (Relative to the Normalized Projection Coordinates (NPC) Space). The other attributes have the following default values: AAngle : PI / 2. ATp : TP_RIGHT AHta : HTA_NORMAL AVta : VTA_NORMAL . | |
Standard_EXPORT void | Text (const TCollection_ExtendedString &AText, const Graphic3d_Vertex &APoint, const Standard_Real AHeight, const Quantity_PlaneAngle AAngle, const Graphic3d_TextPath ATp, const Graphic3d_HorizontalTextAlignment AHta, const Graphic3d_VerticalTextAlignment AVta, const Standard_Boolean EvalMinMax=Standard_True) |
Creates the string <atext> at position <apoint>. The 3D point of attachment is projected. The text is written in the plane of projection. The attributes are given with respect to the plane of projection. AHeight : Height of text. (Relative to the Normalized Projection Coordinates (NPC) Space). AAngle : Orientation of the text (with respect to the horizontal). . | |
Standard_EXPORT void | Text (const TCollection_ExtendedString &AText, const Graphic3d_Vertex &APoint, const Standard_Real AHeight, const Standard_Boolean EvalMinMax=Standard_True) |
Creates the string <atext> at position <apoint>. The 3D point of attachment is projected. The text is written in the plane of projection. The attributes are given with respect to the plane of projection. AHeight : Height of text. (Relative to the Normalized Projection Coordinates (NPC) Space). The other attributes have the following default values: AAngle : PI / 2. ATp : TP_RIGHT AHta : HTA_NORMAL AVta : VTA_NORMAL . | |
Standard_EXPORT void | TriangleMesh (const Graphic3d_Array1OfVertex &ListVertex, const Standard_Boolean EvalMinMax=Standard_True) |
Creates triangles from an array of points such that the Kth triangle contains the vertices K, K+1, K+2. The triangle will be drawn using the current fill attributes (AspectFillArea3d) Category: Methods to create Triangle Warning: Raises GroupDefinitionError if <listvertex> contains less than three points. . | |
Standard_EXPORT void | TriangleMesh (const Graphic3d_Array1OfVertexN &ListVertex, const Standard_Boolean EvalMinMax=Standard_True) |
Creates triangles from an array of points such that the Kth triangle contains the vertices K, K+1, K+2. The triangle will be drawn using the current fill attributes (AspectFillArea3d) The normal is given for each vertex. Category: Methods to create Triangle Warning: Raises GroupDefinitionError if <listvertex> contains less than three points. . | |
Standard_EXPORT void | TriangleMesh (const Graphic3d_Array1OfVertexNT &ListVertex, const Standard_Boolean EvalMinMax=Standard_True) |
Creates triangles from an array of points such that the Kth triangle contains the vertices K, K+1, K+2. The triangle will be drawn using the current fill attributes (AspectFillArea3d) The normal is given for each vertex. A texture coordinate is given for each vertex. Category: Methods to create Triangle Warning: Raises GroupDefinitionError if <listvertex> contains less than three points. . | |
Standard_EXPORT void | TriangleSet (const Graphic3d_Array1OfVertex &ListVertex, const Aspect_Array1OfEdge &ListEdge, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a group of triangles defined by a table of vertices and a table of edges, visible or not. Category: Methods to create Triangle Warning: Raises GroupDefinitionError if <listvertex> contains less than three points or if <listedge> contains less than three edges. . | |
Standard_EXPORT void | TriangleSet (const Graphic3d_Array1OfVertexN &ListVertex, const Aspect_Array1OfEdge &ListEdge, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a group of triangles defined by a table of vertices and a table of edges, visible or not. For each vertex the normal is given. Category: Methods to create Triangle Warning: Raises GroupDefinitionError if <listvertex> contains less than three points or if <listedge> contains less than three edges. . | |
Standard_EXPORT void | TriangleSet (const Graphic3d_Array1OfVertexNT &ListVertex, const Aspect_Array1OfEdge &ListEdge, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a group of triangles defined by a table of vertices and a table of edges, visible or not. For each vertex the normal is given. For each vertex a texture coordinate is given. Category: Methods to create Triangle Warning: Raises GroupDefinitionError if <listvertex> contains less than three points or if <listedge> contains less than three edges. . | |
Standard_EXPORT void | TriangleSet (const Graphic3d_Array1OfVertexC &ListVertex, const Aspect_Array1OfEdge &ListEdge, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a group of triangles defined by a table of vertices and a table of edges, visible or not. For each vertex the color is given. Category: Methods to create Triangle Warning: Raises GroupDefinitionError if <listvertex> contains less than three points or if <listedge> contains less than three edges. . | |
Standard_EXPORT void | TriangleSet (const Graphic3d_Array1OfVertexNC &ListVertex, const Aspect_Array1OfEdge &ListEdge, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a group of triangles defined by a table of vertices and a table of edges, visible or not. For each vertex the normal and the color are given. Category: Methods to create Triangle Warning: Raises GroupDefinitionError if <listvertex> contains less than three points or if <listedge> contains less than three edges. . | |
Standard_EXPORT void | AddPrimitiveArray (const Handle(Graphic3d_ArrayOfPrimitives)&elem, const Standard_Boolean EvalMinMax=Standard_True) |
Adds an array of primitives for display . | |
Standard_EXPORT void | RemovePrimitiveArray (const Standard_Integer aRank) |
Remove the array of primitives of rank <arank> . | |
Standard_EXPORT void | RemovePrimitiveArrays () |
Remove all array of primitives . | |
Standard_EXPORT void | UserDraw (const Standard_Address AnObject, const Standard_Boolean EvalMinMax=Standard_True, const Standard_Boolean ContainsFacet=Standard_False) |
Creates an UserDraw primitive Category: Methods to create UserDraw Warning: Raises GroupDefinitionError if ... . | |
Standard_EXPORT Standard_Integer | ArrayNumber () const |
Returns the number of primitive array added in this group . | |
Standard_EXPORT void | InitDefinedArray () |
Initialize the array list iterator. . | |
Standard_EXPORT void | NextDefinedArray () |
Increments the array list iterator. . | |
Standard_EXPORT Standard_Boolean | MoreDefinedArray () |
Returns TRUE if more array exists in the list. . | |
Standard_EXPORT Handle_Graphic3d_ArrayOfPrimitives | DefinedArray () const |
Returns the current array of primitives according to the array list iterator value. . | |
Standard_EXPORT void | GroupPrimitivesAspect (Handle(Graphic3d_AspectLine3d)&CTXL, Handle(Graphic3d_AspectText3d)&CTXT, Handle(Graphic3d_AspectMarker3d)&CTXM, Handle(Graphic3d_AspectFillArea3d)&CTXF) const |
Returns the context of all the primitives of the group. . | |
Standard_EXPORT void | PrimitivesAspect (Handle(Graphic3d_AspectLine3d)&CTXL, Handle(Graphic3d_AspectText3d)&CTXT, Handle(Graphic3d_AspectMarker3d)&CTXM, Handle(Graphic3d_AspectFillArea3d)&CTXF) const |
Returns the last inserted context in the group <me> foreach kind of primitives. . | |
Standard_EXPORT Standard_Boolean | ContainsFacet () const |
Returns Standard_True if the group <me> contains Polygons, Triangles or Quadrangles. . | |
Standard_EXPORT Standard_Boolean | IsDeleted () const |
Returns Standard_True if the group <me> is deleted. <me> is deleted after the call Remove (me) or the associated structure is deleted. . | |
Standard_EXPORT Standard_Boolean | IsEmpty () const |
Returns Standard_True if the group <me> is empty. . | |
Standard_EXPORT void | MinMaxValues (Standard_Real &XMin, Standard_Real &YMin, Standard_Real &ZMin, Standard_Real &XMax, Standard_Real &YMax, Standard_Real &ZMax) const |
Returns the coordinates of the boundary box of the group <me>. . | |
Standard_EXPORT Handle_Graphic3d_Structure | Structure () const |
Returns the structure containing the group <me>. . | |
Standard_EXPORT void | Exploration () const |
Prints informations about the group <me>. . | |
Standard_EXPORT void | BeginPrimitives () |
Standard_EXPORT void | EndPrimitives () |
Standard_EXPORT void | Bezier (const Graphic3d_Array1OfVertex &ListVertex, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a non rational Bezier curve with a set of poles : ListVertex. The weights are defaulted to all being 1. Category: Methods to create Curve Warning: Raises GroupDefinitionError if <listvertex> contains less than two points. . | |
Standard_EXPORT void | Bezier (const Graphic3d_Array1OfVertex &ListVertex, const TColStd_Array1OfReal &ListWeight, const Standard_Boolean EvalMinMax=Standard_True) |
Creates a non rational Bezier curve with a set of poles : ListVertex and the set of weights ListWeight. If all the weights are identical the curve is considered as non rational. Category: Methods to create Curve Warning: Raises GroupDefinitionError if <listvertex> contains less than two points or <listvertex> and <listweight> have not the same length or one weight value is lower or equal to Resolution from package gp. . | |
Standard_EXPORT const | Handle (Standard_Type)&DynamicType() const |
Private Member Functions | |
Standard_EXPORT void | Labels (Standard_Integer &LB, Standard_Integer &LE) const |
Returns the position of the group in the structure. . | |
Standard_EXPORT void | MinMaxCoord (Standard_Real &XMin, Standard_Real &YMin, Standard_Real &ZMin, Standard_Real &XMax, Standard_Real &YMax, Standard_Real &ZMax) const |
Returns the extreme coordinates found in the group. . | |
Standard_EXPORT void | Update () const |
Calls the Update method of the StructureManager which contains the associated Structure of the Group <me>. . | |
Private Attributes | |
Graphic3d_CGroup | MyCGroup |
Handle_Graphic3d_GraphicDriver | MyGraphicDriver |
Graphic3d_CBitFields4 | MyCBitFields |
Standard_Address | MyPtrStructure |
Graphic3d_CBounds | MyBounds |
Graphic3d_ListOfPArray | MyListOfPArray |
Graphic3d_ListIteratorOfListOfPArray | MyListOfPArrayIterator |
Handle_Graphic3d_HArray1OfBytes | MyMarkArray |
Standard_Integer | MyMarkWidth |
Standard_Integer | MyMarkHeight |
Friends | |
Standard_EXPORT void | Graphic3d_Structure::Remove (const Handle(Graphic3d_Group)&AGroup) |
Suppress in the structure <me>, the group <agroup>. It will be erased at the next screen update. . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|