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
|
-- File : MeshVS_VectorPrsBuilder.cdl
-- Created : 13 October 2003
-- Author : Alexander SOLOVYOV
---Copyright: Open CASCADE 2003
class VectorPrsBuilder from MeshVS inherits PrsBuilder from MeshVS
---Purpose: This class provides methods to create vector data presentation.
-- It store map of vectors assigned with nodes or elements.
-- In simplified mode vectors draws with thickened ends instead of arrows
uses
Real from Standard,
Boolean from Standard,
Integer from Standard,
Color from Quantity,
Presentation from Prs3d,
Trsf from gp,
Pnt from gp,
Vec from gp,
ArrayOfPrimitives from Graphic3d,
Array1OfPnt from TColgp,
Mesh from MeshVS,
MeshPtr from MeshVS,
DataSource from MeshVS,
DisplayModeFlags from MeshVS,
DataMapOfIntegerVector from MeshVS,
BuilderPriority from MeshVS,
PackedMapOfInteger from TColStd
is
Create ( Parent : Mesh from MeshVS;
MaxLength : Real;
VectorColor : Color from Quantity;
Flags : DisplayModeFlags from MeshVS = MeshVS_DMF_VectorDataPrs;
DS : DataSource from MeshVS = 0;
Id : Integer = -1;
Priority : BuilderPriority from MeshVS = MeshVS_BP_Vector;
IsSimplePrs : Boolean = Standard_False ) returns mutable VectorPrsBuilder from MeshVS;
Build ( me; Prs : Presentation from Prs3d;
IDs : PackedMapOfInteger;
IDsToExclude : in out PackedMapOfInteger;
IsElement : Boolean;
theDisplayMode : Integer ) is virtual;
---Purpose: Builds vector data presentation
DrawVector ( me; theTrsf : Trsf from gp;
Length : Real;
MaxLength : Real;
ArrowPoints : Array1OfPnt from TColgp;
Lines : ArrayOfPrimitives from Graphic3d;
ArrowLines : ArrayOfPrimitives from Graphic3d;
Triangles : ArrayOfPrimitives from Graphic3d );
---Purpose: Adds to array of polygons and polylines some primitive representing single vector
calculateArrow ( myclass; Points : out Array1OfPnt from TColgp;
Length : Real;
ArrowPart : Real ) returns Real;
---Purpose: Calculates points of arrow presentation
GetVectors ( me; IsElement : Boolean ) returns DataMapOfIntegerVector from MeshVS;
---C++: return const &
---Purpose: Returns map of vectors assigned with nodes or elements
SetVectors ( me : mutable;
IsElement : Boolean;
Map : DataMapOfIntegerVector from MeshVS );
---Purpose: Sets map of vectors assigned with nodes or elements
HasVectors ( me; IsElement : Boolean ) returns Boolean;
---Purpose: Returns true, if map isn't empty
GetVector ( me; IsElement : Boolean;
ID : Integer;
Vect : out Vec from gp ) returns Boolean;
---Purpose: Returns vector assigned with certain node or element
SetVector ( me : mutable;
IsElement : Boolean;
ID : Integer;
Vect : Vec from gp );
---Purpose: Sets vector assigned with certain node or element
GetMinMaxVectorValue ( me; IsElement : Boolean;
MinValue : out Real;
MaxValue : out Real );
---Purpose: Calculates minimal and maximal length of vectors in map
-- ( nodal, if IsElement = False or elemental, if IsElement = True )
SetSimplePrsMode ( me : mutable;
IsSimpleArrow : Boolean );
---Purpose: Sets flag that indicates is simple vector arrow mode uses or not
-- default value is False
SetSimplePrsParams ( me : mutable;
theLineWidthParam : Real;
theStartParam, theEndParam : Real );
---Purpose: Sets parameters of simple vector arrwo presentation
-- theLineWidthParam - coefficient of vector line width (to draw line instead of arrow)
-- theStartParam and theEndParam parameters of start and end of thickened ends
-- position of thickening calculates according to parameters and maximum vector length
-- default values are:
-- theLineWidthParam = 2.5
-- theStartParam = 0.85
-- theEndParam = 0.95
fields
myIsSimplePrs : Boolean;
mySimpleWidthPrm : Real;
mySimpleStartPrm : Real;
mySimpleEndPrm : Real;
myNodeVectorMap : DataMapOfIntegerVector from MeshVS;
myElemVectorMap : DataMapOfIntegerVector from MeshVS;
end VectorPrsBuilder;
|