Open CASCADE Technology 6.6.0
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 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 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_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>.

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

Graphic3d_Group::Graphic3d_Group ( const Handle< Graphic3d_Structure > &  AStructure)
Graphic3d_Group::~Graphic3d_Group ( ) [inline]

Member Function Documentation

void Graphic3d_Group::AddPrimitiveArray ( const Handle< Graphic3d_ArrayOfPrimitives > &  elem,
const Standard_Boolean  EvalMinMax = Standard_True 
)
void Graphic3d_Group::Clear ( const Standard_Boolean  theUpdateStructureMgr = Standard_True)
Standard_Boolean Graphic3d_Group::ContainsFacet ( ) const
void Graphic3d_Group::Destroy ( )
void Graphic3d_Group::GroupPrimitivesAspect ( const Handle< Graphic3d_AspectLine3d > &  CTXL,
const Handle< Graphic3d_AspectText3d > &  CTXT,
const Handle< Graphic3d_AspectMarker3d > &  CTXM,
const Handle< Graphic3d_AspectFillArea3d > &  CTXF 
) const
Standard_Boolean Graphic3d_Group::IsDeleted ( ) const
Standard_Boolean Graphic3d_Group::IsEmpty ( ) const
Standard_Boolean Graphic3d_Group::IsGroupPrimitivesAspectSet ( const Graphic3d_GroupAspect  theAspect) const
void Graphic3d_Group::Marker ( const Graphic3d_Vertex APoint,
const Standard_Boolean  EvalMinMax = Standard_True 
)
void Graphic3d_Group::MarkerSet ( const Graphic3d_Array1OfVertex ListVertex,
const Standard_Boolean  EvalMinMax = Standard_True 
)
void Graphic3d_Group::MinMaxValues ( Standard_Real XMin,
Standard_Real YMin,
Standard_Real ZMin,
Standard_Real XMax,
Standard_Real YMax,
Standard_Real ZMax 
) const
void Graphic3d_Group::PrimitivesAspect ( const Handle< Graphic3d_AspectLine3d > &  CTXL,
const Handle< Graphic3d_AspectText3d > &  CTXT,
const Handle< Graphic3d_AspectMarker3d > &  CTXM,
const Handle< Graphic3d_AspectFillArea3d > &  CTXF 
) const
void Graphic3d_Group::Remove ( )
void Graphic3d_Group::SetGroupPrimitivesAspect ( )
void Graphic3d_Group::SetGroupPrimitivesAspect ( const Handle< Graphic3d_AspectMarker3d > &  CTX)
void Graphic3d_Group::SetGroupPrimitivesAspect ( const Handle< Graphic3d_AspectLine3d > &  CTX)
void Graphic3d_Group::SetGroupPrimitivesAspect ( const Handle< Graphic3d_AspectText3d > &  CTX)
void Graphic3d_Group::SetGroupPrimitivesAspect ( const Handle< Graphic3d_AspectFillArea3d > &  CTX)
void Graphic3d_Group::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 
)
void Graphic3d_Group::SetPrimitivesAspect ( const Handle< Graphic3d_AspectLine3d > &  CTX)
void Graphic3d_Group::SetPrimitivesAspect ( const Handle< Graphic3d_AspectFillArea3d > &  CTX)
void Graphic3d_Group::SetPrimitivesAspect ( const Handle< Graphic3d_AspectMarker3d > &  CTX)
void Graphic3d_Group::SetPrimitivesAspect ( const Handle< Graphic3d_AspectText3d > &  CTX)
Handle_Graphic3d_Structure Graphic3d_Group::Structure ( ) const
void Graphic3d_Group::Text ( const Standard_CString  AText,
const Graphic3d_Vertex APoint,
const Standard_Real  AHeight,
const Standard_Boolean  EvalMinMax = Standard_True 
)
void Graphic3d_Group::Text ( const TCollection_ExtendedString AText,
const Graphic3d_Vertex APoint,
const Standard_Real  AHeight,
const Standard_Boolean  EvalMinMax = Standard_True 
)
void Graphic3d_Group::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 
)
void Graphic3d_Group::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 
)
void Graphic3d_Group::UserDraw ( const Standard_Address  AnObject,
const Standard_Boolean  EvalMinMax = Standard_True,
const Standard_Boolean  ContainsFacet = Standard_False 
)

Friends And Related Function Documentation

void Graphic3d_Structure::Remove ( const Handle< Graphic3d_Group > &  AGroup) [friend]

The documentation for this class was generated from the following file:
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines