DI-Guy SDK Documentation  13.8
diguyAuthorVisualMaterial.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2024 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
6 #ifndef __diguyAuthorVisualMaterial_H
7 #define __diguyAuthorVisualMaterial_H
8 
9 #include <declspec_diguy.h>
10 #include <diguy_vector_classes.h>
11 class bdiGeometryVisualMaterial;
12 
13 
14 /*********************************************************************/
23 class BDI_DECLSPEC_diguy diguyAuthorVisualMaterial
24 {
25 
26 public:
27 
28  /*l
29  ** Returns the name of this material.
30  */
31  const char* get_name();
32 
33 
34 /*****************************************************************************/
40  /*l
41  ** Returns the material's primary brush color. The brush color is used
42  ** to fill the polygons of visuals.
43  **
44  ** The returned vector is an RGBA color vector, with color channel
45  ** values between 0 and 1.
46  */
47  diguyVec4f get_brush_color();
48 
49  /*l
50  ** Returns the suggested number of "layers", or vertical divisions, that
51  ** should be used to construct polygonal solids such as spheres, cones,
52  ** cylinders, and other shapes that need linear approximations of
53  ** circular data.
54  **
55  ** Analogous to layers in a round cake.
56  */
57  int get_num_layers(); // number "vertical" divisions
58 
59  /*l
60  ** Returns the suggested number of "slices", or radial divisions, that
61  ** should be used to construct polygonal solids such as spheres, cones,
62  ** cylinders, and other shapes that need linear approximations of
63  ** circular data.
64  **
65  ** Analogous to slices in a round cake.
66  */
67  int get_num_slices();
68 
69  /*l
70  ** Returns 1 if faces in should be visible, 0 if not. This is the same
71  ** as checking whether the brush color alpha component equals 0
72  ** (complete transparency).
73  **
74  ** Shortcut for checking brush alpha not equal to 0.
75  */
76  int get_fill_faces();
77 
78 
79 /*****************************************************************************/
85  /*l
86  ** Returns the material's primary pen color. The pen color is used for
87  ** line segments and edges of visuals.
88  **
89  ** The returned vector is an RGBA color vector, with color channel
90  ** values between 0 and 1.
91  */
92  diguyVec4f get_pen_color();
93 
94  /*l
95  ** Returns the material's secondary pen color. The secondary pen isn't
96  ** used by a visual unless the visual's documentation explicitly says it
97  ** is.
98  */
99  diguyVec4f get_pen2_color();
100 
101  /*l
102  ** Returns the recommended width of line segments.
103  */
104  float get_line_width();
105 
106  /*l
107  ** Returns 1 if edge line segments should be visible, 0 if not. This is
108  ** the same as checking whether the pen color alpha component equals 0
109  ** (complete transparency).
110  */
111  int get_edge_faces();
112 
113 
114 
115 /****************************************************************************/
116 /****************************************************************************/
117 
122  bdiGeometryVisualMaterial* get_scripted_object() {return m_scripted_object;}
124 protected:
125 
126  diguyAuthorVisualMaterial(void* internal_data);
127 
128  bdiGeometryVisualMaterial* m_scripted_object;
129 
130  friend class bdiGeometryVisualMaterial;
131  friend class bdiGeometryFactory;
132 };
133 
134 #endif /* __diguyAuthorVisualMaterial_H */
135 
Definition: diguy_vector_classes.h:154
The diguyAuthorVisualMaterial class provides data needed to render DI-Guy Author visuals in a Host IG...
Definition: diguyAuthorVisualMaterial.h:21