4326fd14993938f69690e9327572f5277c20dde9
[occt.git] / src / Graphic3d / Graphic3d_AspectMarker3d.cdl
1 -- Created by: NW,JPB,CAL
2 -- Copyright (c) 1991-1999 Matra Datavision
3 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
4 --
5 -- This file is part of Open CASCADE Technology software library.
6 --
7 -- This library is free software; you can redistribute it and/or modify it under
8 -- the terms of the GNU Lesser General Public License version 2.1 as published
9 -- by the Free Software Foundation, with special exception defined in the file
10 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 -- distribution for complete text of the license and disclaimer of any warranty.
12 --
13 -- Alternatively, this file may be used under the terms of Open CASCADE
14 -- commercial license or contractual agreement.
15
16 class AspectMarker3d from Graphic3d inherits AspectMarker from Aspect
17
18   ---Version:
19
20   ---Purpose: Creates and updates an attribute group for
21   --          marker type primitives. This group contains the type
22   --          of marker, its colour, and its scale factor.
23   ---Keywords: Marker, Color, Scale, Type
24
25   ---Warning:
26   ---References:
27
28 uses
29
30   Color                 from Quantity,
31   TypeOfMarker          from Aspect,
32   HArray1OfByte         from TColStd,
33   PixMap_Handle         from Image,
34   MarkerImage_Handle    from Graphic3d,
35   ShaderProgram_Handle  from Graphic3d
36
37 is
38
39   Create
40   returns mutable AspectMarker3d from Graphic3d;
41   ---Level: Public
42   ---Purpose: Creates a context table for marker primitives
43   --          defined with the following default values:
44   --
45   --          Marker type : TOM_X
46   --          Colour      : YELLOW
47   --          Scale factor: 1.0
48
49   Create (theType             : TypeOfMarker from Aspect;
50           theColor            : Color from Quantity;
51           theScale            : Real from Standard)
52   returns mutable AspectMarker3d from Graphic3d;
53
54   Create (theColor            : Color from Quantity;
55           theWidth            : Integer from Standard;
56           theHeight           : Integer from Standard;
57           theTextureBitmap    : HArray1OfByte from TColStd)
58   returns mutable AspectMarker3d from Graphic3d;
59   ---Level: Public
60   ---Purpose: Creates a context table for marker primitives
61   --          defined with the specified values.
62
63   Create (theTextureImage     : PixMap_Handle from Image)
64   returns mutable AspectMarker3d from Graphic3d;
65   ---Level: Public
66   ---Purpose: Creates a context table for marker primitives
67   --          defined with the specified values.
68
69   GetTextureSize (me;
70                   theWidth : out Integer from Standard;
71                   theHeight: out Integer from Standard);
72   ---Level: Public
73   ---Purpose: Returns marker's texture size.
74
75   GetMarkerImage (me)
76   returns MarkerImage_Handle from Graphic3d;
77   ---Level: Public
78   ---Purpose: Returns marker's image texture.
79   --- Could be null handle if marker aspect has been initialized as
80   --- default type of marker.
81   ---C++: return const &
82
83   SetBitMap (me: mutable;
84              theWidth  : Integer from Standard;
85              theHeight : Integer from Standard;
86              theTexture: HArray1OfByte from TColStd ) is static;
87
88   SetShaderProgram ( me  :  mutable; 
89                      theProgram  :  ShaderProgram_Handle from Graphic3d );
90   ---Level: Public
91   ---Purpose: Sets up OpenGL/GLSL shader program.
92
93   ShaderProgram ( me )
94   returns ShaderProgram_Handle from Graphic3d;
95   ---C++: return const &
96
97 fields
98
99 --
100 -- Class: Graphic3d_AspectMarker3d
101 --
102 -- Purpose: Declaration of context-specific variables
103 --          for drawing 3d markers.
104 --
105 -- Reminder: A context for drawing 3d markers inherits:
106 --            - the colour
107 --            - the type of marker
108 --            - the scale factor
109 --           defined by AspectMarker.
110
111 myMarkerImage : MarkerImage_Handle from Graphic3d is protected;
112
113 MyShaderProgram  :  ShaderProgram_Handle  from  Graphic3d; 
114
115 end AspectMarker3d;