Open CASCADE Technology  6.5.4
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Data Structures
Graphic3d_Group.hxx File Reference
#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_Graphic3d_Group.hxx>
#include <Graphic3d_CGroup.hxx>
#include <Handle_Graphic3d_GraphicDriver.hxx>
#include <Graphic3d_CBitFields4.hxx>
#include <Standard_Address.hxx>
#include <Graphic3d_CBounds.hxx>
#include <Graphic3d_ListOfPArray.hxx>
#include <Graphic3d_ListIteratorOfListOfPArray.hxx>
#include <Handle_TColStd_HArray1OfByte.hxx>
#include <Standard_Integer.hxx>
#include <MMgt_TShared.hxx>
#include <Graphic3d_Structure.hxx>
#include <Handle_Graphic3d_Structure.hxx>
#include <Standard_Boolean.hxx>
#include <Handle_Graphic3d_AspectLine3d.hxx>
#include <Handle_Graphic3d_AspectFillArea3d.hxx>
#include <Handle_Graphic3d_AspectText3d.hxx>
#include <Handle_Graphic3d_AspectMarker3d.hxx>
#include <Standard_Real.hxx>
#include <Graphic3d_TypeOfPolygon.hxx>
#include <Standard_CString.hxx>
#include <Quantity_PlaneAngle.hxx>
#include <Graphic3d_TextPath.hxx>
#include <Graphic3d_HorizontalTextAlignment.hxx>
#include <Graphic3d_VerticalTextAlignment.hxx>
#include <Handle_Graphic3d_ArrayOfPrimitives.hxx>
#include <Graphic3d_GroupAspect.hxx>

Data Structures

class  Graphic3d_Group
 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.
More...