DI-Guy SDK Documentation  13.8
diguyAuthorVisualMultiline.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2024 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
6 /*********************************************************************/
7 
8 #ifndef __diguyAuthorVisualMultiline_H
9 #define __diguyAuthorVisualMultiline_H
10 
11 #include <declspec_diguy.h>
12 #include <diguy_vector_classes.h>
15 class bdiGeometryMultilineData;
16 
17 typedef diguyAuthorVisualMultiline* diguyAuthorVisualMultilineCreateFunc(void* internal_data, long visual_uid);
18 
19 
20 /*l
21  ** Function for setting the create function for multiline visual subclass
22  ** objects. This should be called after diguy_author_initialize(), but
23  ** before any scenario is created of loaded.
24  */
26 
27 
42 class BDI_DECLSPEC_diguy diguyAuthorVisualMultiline
43 {
44 
45 public:
46 
47  /*l
48  ** Returns the visual material to be used for rendering this object.
49  **
50  ** Because multilines have no polygons the brush color of the material
51  ** is not used.
52  */
53  diguyAuthorVisualMaterial* get_visual_material();
54 
55  int get_num_points();
56  diguyVec3f get_point_position(int point_number);
57  diguyVec3d get_point_position_double(int point_number);
58 
59  /*l
60  ** Returns the uid (unique identifier) of this multiline.
61  */
62  long get_uid();
63 
64  /*l
65  ** Returns 1 if this visual should be visible, else 0.
66  */
67  int get_visible();
68 
69 
70 /*****************************************************************************/
82  /*l
83  *b Description:
84  **
85  ** See diguyAuthorVisualWaypoint::build() for general information
86  ** about this function.
87  **
88  ** Multilines are mostly represented by renderer line primitives.
89  */
90  virtual void build();
91 
92  /*l
93  *b Description:
94  **
95  ** See diguyAuthorVisualWaypoint::unbuild() for general information
96  ** about this function.
97  */
98  virtual void unbuild();
99 
100  /*l
101  *b Description:
102  **
103  ** See diguyAuthorVisualWaypoint::update() for general information
104  ** about this function.
105  **
106  *i DIGUY_GRAPHICS_VISUAL_UPDATE_GEOMETRY
107  **
108  ** The functions get_num_points(), get_point_position(), etc.,
109  ** should be used to create line primitives.
110  **
111  *i DIGUY_GRAPHICS_VISUAL_UPDATE_POSITION
112  **
113  ** Multiline visuals do not use this value. The overall positions
114  ** of line segment endpoints that make up the multiline are
115  ** recomputed and applied during an overall geometry update
116  ** operation.
117  */
118  virtual void update(int update_flags);
119 
120  /*l
121  *b Description:
122  **
123  ** See diguyAuthorVisualWaypoint::draw() for general information
124  ** about this function.
125  */
126  virtual void draw();
127 
128  /*l
129  *b Description:
130  **
131  ** See diguyAuthorVisualWaypoint::show() for general information
132  ** about this function.
133  */
134  virtual void show();
135 
136  /*l
137  *b Description:
138  **
139  ** See diguyAuthorVisualWaypoint::hide() for general information
140  ** about this function.
141  */
142  virtual void hide();
143 
144 
145 
146 
147 /****************************************************************************/
148 /****************************************************************************/
149 
155 
156 protected:
158  // protected constructor and destructor
159  diguyAuthorVisualMultiline(void* internal_data, long uid);
160  virtual ~diguyAuthorVisualMultiline();
161 
162  bdiGeometryMultilineData* m_scripted_object;
163  bdiGeometryMultilineData* get_scripted_object() {return m_scripted_object;}
164 
165  diguyAuthorVisualMaterial* m_visual_material;
166  long m_uid;
167 
168  friend class bdiPath;
169  friend class bdiGeometryMultilineData;
170 
171 };
172 
173 #endif /* __diguyAuthorVisualMultiline_H */
174 
The diguyAuthorVisualMultiline class provides an interface for creating supplemental visuals needed f...
Definition: diguyAuthorVisualMultiline.h:39
Definition: diguy_vector_classes.h:227
diguyAuthorVisualMultiline * diguyAuthorVisualMultilineCreateFunc(void *internal_data, long visual_uid)
Definition: diguyAuthorVisualMultiline.h:17
void diguy_author_set_multiline_visual_create_func(diguyAuthorVisualMultilineCreateFunc *func)
Function for setting the create function for multiline visual subclass objects.
Definition: diguy_vector_classes.h:74
The diguyAuthorVisualMaterial class provides data needed to render DI-Guy Author visuals in a Host IG...
Definition: diguyAuthorVisualMaterial.h:21