1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
-- File : MeshVS_PrsBuilder.cdl
-- Created : 10 October 2003
-- Author : Alexander SOLOVYOV
---Copyright: Open CASCADE 2003
deferred class PrsBuilder from MeshVS inherits TShared from MMgt
---Purpose: This class is parent for all builders using in MeshVS_Mesh.
-- It provides base fields and methods all buildes need.
uses
Integer from Standard,
Boolean from Standard,
Presentation from Prs3d,
EntityOwner from SelectBasics,
SensitiveEntity from SelectBasics,
DisplayModeFlags from MeshVS,
Mesh from MeshVS,
MeshPtr from MeshVS,
DataSource from MeshVS,
Drawer from MeshVS,
BuilderPriority from MeshVS,
PresentationManager3d from PrsMgr,
PackedMapOfInteger from TColStd
is
Initialize ( Parent : Mesh from MeshVS;
Flags : DisplayModeFlags from MeshVS;
DS : DataSource from MeshVS;
Id : Integer;
Priority : BuilderPriority from MeshVS = MeshVS_BP_Default );
---Purpose: Constructor
-- Parent is pointer to MeshVS_Mesh object
-- Flags is set of display modes corresponding to this builder
-- DS is data source object, from which builder will pick geometry and topological information
-- Id is numeric identificator of builder. You must set it to positive integer, but if
-- you set it to -1, constructor will select the smallest integer, not occupied by other builders
-- Priority is numerical priority constant. As priority bigger, as sooner builder starts during
-- presentation construction
Build ( me; Prs : Presentation from Prs3d;
IDs : PackedMapOfInteger;
IDsToExclude: in out PackedMapOfInteger;
IsElement : Boolean;
DisplayMode : Integer ) is deferred;
---Purpose: Builds presentation of certain type of data.
-- Prs is presentation object which this method constructs.
-- IDs is set of numeric identificators forming object appearance.
-- IDsToExclude is set of IDs to exclude from processing. If some entity
-- has been excluded, it is not processed by other builders.
-- IsElement indicates, IDs is identificators of nodes or elements.
-- DisplayMode is numeric constant describing display mode (see MeshVS_DisplayModeFlags.hxx)
CustomBuild ( me; Prs : Presentation from Prs3d;
IDs : PackedMapOfInteger;
IDsToExclude: in out PackedMapOfInteger;
DisplayMode : Integer ) is virtual;
---Purpose: This method is called to build presentation of custom elements (they have MeshVS_ET_0D type).
-- IDs is set of numeric identificators of elements for custom building.
-- IDsToExclude is set of IDs to exclude from processing. If some entity
-- has been excluded, it is not processed by other builders.
-- DisplayMode is numeric constant describing display mode (see MeshVS_DisplayModeFlags.hxx)
CustomSensitiveEntity ( me; Owner : EntityOwner from SelectBasics;
SelectMode : Integer ) returns SensitiveEntity from SelectBasics is virtual;
---Purpose: This method is called to build sensitive of custom elements ( they have MeshVS_ET_0D type )
GetFlags ( me ) returns Integer;
---Purpose: Returns flags, assigned with builder during creation
TestFlags ( me; DisplayMode : Integer ) returns Boolean is virtual;
---Purpose: Test whether display mode has flags assigned with this builder.
-- This method has default implementation and can be redefined for advance behavior
-- Returns Standard_True only if display mode is appropriate for this builder
GetId ( me ) returns Integer;
---Purpose: Returns builder ID
GetPriority ( me ) returns Integer;
---Purpose: Returns priority; as priority bigger, as soon builder will be called.
GetDataSource ( me ) returns DataSource from MeshVS;
---Purpose: Returns custom data source or default ( from MeshVS_Mesh ) if custom is NULL
DataSource ( me ) returns DataSource from MeshVS is protected;
---Purpose: Returns only custom data source
SetDataSource ( me : mutable; newDS : DataSource from MeshVS );
---Purpose: Change custom data source
GetDrawer ( me ) returns Drawer from MeshVS;
---Purpose: Returns custom drawer or default ( from MeshVS_Mesh ) if custom is NULL
Drawer ( me ) returns Drawer from MeshVS is protected;
---Purpose: Returns only custom drawer
SetDrawer ( me : mutable; newDr : Drawer from MeshVS );
---Purpose: Change custom drawer
SetExcluding ( me : mutable; state : Boolean );
---Purpose: Set excluding state. If it is Standard_True, the nodes or elements, processed by current builder
-- will be noted and next builder won't process its.
IsExcludingOn ( me ) returns Boolean;
---Purpose: Read excluding state
SetPresentationManager( me : mutable; thePrsMgr : PresentationManager3d from PrsMgr );
---Purpose: Set presentation manager for builder
GetPresentationManager ( me ) returns PresentationManager3d from PrsMgr;
---Purpose: Get presentation manager of builder
fields
myIsExcluding : Boolean;
myParentMesh : MeshPtr from MeshVS is protected;
myDataSource : DataSource from MeshVS;
myDrawer : Drawer from MeshVS;
myFlags : Integer;
myId : Integer;
myPriority : Integer;
myPrsMgr : PresentationManager3d from PrsMgr;
end PrsBuilder;
|