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