Open CASCADE Technology  6.5.4
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Friends
Graphic3d_Group Class Reference

This class allows the definition of groups
of primitives inside of graphic objects (presentations).
A group contains the primitives and attributes
for which the range is limited to this group.
The primitives of a group can be globally suppressed.

There are two main group usage models:

1) Non-modifiable, or unbounded, group ('black box').
Developers can repeat a sequence of
SetPrimitivesAspect() with AddPrimitiveArray() methods arbitrary number of times
to define arbitrary number of primitive "blocks" each having individual apect values.
Any modification of such a group is forbidden, as aspects and primitives are mixed
in memory without any high-level logical structure, and any modification is very likely to result
in corruption of the group internal data.
It is necessary to recreate such a group as a whole when some attribute should be changed.
(for example, in terms of AIS it is necessary to re-Compute() the whole presentation each time).
2) Bounded group. Developers should specify the necessary group aspects with help of
SetGroupPrimitivesAspect() and then add primitives to the group.
Such a group have simplified organization in memory (a single block of attributes
followed by a block of primitives) and therefore it can be modified, if it is necessary to
change parameters of some aspect that has already been set, using methods:
IsGroupPrimitivesAspectSet() to detect which aspect was set for primitives;
GroupPrimitivesAspect() to read current aspect values
and SetGroupPrimitivesAspect() to set new values.

Developers are strongly recommended to take all the above into account when filling Graphic3d_Group
with aspects and primitives and choose the group usage model beforehand out of application needs.

#include <Graphic3d_Group.hxx>

Inheritance diagram for Graphic3d_Group:
Inheritance graph
[legend]

Public Member Functions

 Graphic3d_Group (const Handle< Graphic3d_Structure > &AStructure)
 Creates a group in the structure <AStructure>.

void Clear (const Standard_Boolean theUpdateStructureMgr=Standard_True)
 Supress all primitives and attributes of <me>.
To clear group without update in Graphic3d_StructureManager
pass Standard_False as <theUpdateStructureMgr>. This
used on context and viewer destruction, when the pointer
to structure manager in Graphic3d_Structure could be
already released (pointers are used here to avoid handle
cross-reference);

void Destroy ()
 Supress the group <me> in the structure.

 ~Graphic3d_Group ()
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)

void SetGroupPrimitivesAspect ()
 Removes the context for all the line primitives
of the group.

void SetGroupPrimitivesAspect (const Handle< Graphic3d_AspectLine3d > &CTX)
 Modifies the context for all the line primitives
of the group.

void SetGroupPrimitivesAspect (const Handle< Graphic3d_AspectFillArea3d > &CTX)
 Modifies the context for all the face primitives
of the group.

void SetGroupPrimitivesAspect (const Handle< Graphic3d_AspectText3d > &CTX)
 Modifies the context for all the text primitives
of the group.

void SetGroupPrimitivesAspect (const Handle< Graphic3d_AspectMarker3d > &CTX)
 Modifies the context for all the marker primitives
of the group.

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.

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.

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.

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.

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>.

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).

void MarkerSet (const Graphic3d_Array1OfVertex &ListVertex, const Standard_Boolean EvalMinMax=Standard_True)
 Creates a group of markers defined by a table of
vertices.

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.

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.

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)

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)

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.

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).

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_LEFT
AVta : VTA_BOTTOM

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).

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_LEFT
AVta : VTA_BOTTOM

void AddPrimitiveArray (const Handle< Graphic3d_ArrayOfPrimitives > &elem, const Standard_Boolean EvalMinMax=Standard_True)
 Adds an array of primitives for display

void RemovePrimitiveArray (const Standard_Integer aRank)
 Remove the array of primitives of rank <aRank>

void RemovePrimitiveArrays ()
 Remove all array of primitives

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_Integer ArrayNumber () const
 Returns the number of primitive array added in this group

void InitDefinedArray ()
 Initialize the array list iterator.

void NextDefinedArray ()
 Increments the array list iterator.

Standard_Boolean MoreDefinedArray ()
 Returns TRUE if more array exists in the list.

Handle_Graphic3d_ArrayOfPrimitives DefinedArray () const
 Returns the current array of primitives according
to the array list iterator value.

Standard_Boolean IsGroupPrimitivesAspectSet (const Graphic3d_GroupAspect theAspect) const
 Returns TRUE if aspect is set for the group.

void GroupPrimitivesAspect (const Handle< Graphic3d_AspectLine3d > &CTXL, const Handle< Graphic3d_AspectText3d > &CTXT, const Handle< Graphic3d_AspectMarker3d > &CTXM, const Handle< Graphic3d_AspectFillArea3d > &CTXF) const
 Returns the context of all the primitives of the group.

void PrimitivesAspect (const Handle< Graphic3d_AspectLine3d > &CTXL, const Handle< Graphic3d_AspectText3d > &CTXT, const Handle< Graphic3d_AspectMarker3d > &CTXM, const Handle< Graphic3d_AspectFillArea3d > &CTXF) const
 Returns the last inserted context in the group <me>
foreach kind of primitives.

Standard_Boolean ContainsFacet () const
 Returns Standard_True if the group <me> contains
Polygons, Triangles or Quadrangles.

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_Boolean IsEmpty () const
 Returns Standard_True if the group <me> is empty.

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>.

Handle_Graphic3d_Structure Structure () const
 Returns the structure containing the group <me>.

void BeginPrimitives ()
void EndPrimitives ()

Friends

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.


Constructor & Destructor Documentation


Member Function Documentation

Handle_Graphic3d_ArrayOfPrimitives Graphic3d_Group::DefinedArray ( ) const
void Graphic3d_Group::MinMaxValues ( Standard_Real XMin,
Standard_Real YMin,
Standard_Real ZMin,
Standard_Real XMax,
Standard_Real YMax,
Standard_Real ZMax 
) const
Handle_Graphic3d_Structure Graphic3d_Group::Structure ( ) const

Friends And Related Function Documentation


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