29 #ifndef __FREEWRL_SCENEGRAPH_SHAPE_H__
30 #define __FREEWRL_SCENEGRAPH_SHAPE_H__
74 #define NO_APPEARANCE_SHADER 0x0001
75 #define MATERIAL_APPEARANCE_SHADER 0x0002
76 #define TWO_MATERIAL_APPEARANCE_SHADER 0x0004
77 #define ONE_TEX_APPEARANCE_SHADER 0x0008
78 #define MULTI_TEX_APPEARANCE_SHADER 0x0010
81 #define COLOUR_MATERIAL_SHADER 0x00020
84 #define FILL_PROPERTIES_SHADER 0x00040
87 #define HAVE_LINEPOINTS_COLOR 0x0080
88 #define HAVE_LINEPOINTS_APPEARANCE 0x00100
91 #define HAVE_TEXTURECOORDINATEGENERATOR 0x00200
94 #define HAVE_CUBEMAP_TEXTURE 0x00400
95 #define FOG_APPEARANCE_SHADER 0X00800
96 #define HAVE_FOG_COORDS 0x01000
97 #define TEXTURE_REPLACE_PRIOR 0x02000
98 #define TEXALPHA_REPLACE_PRIOR 0x04000
99 #define CPV_REPLACE_PRIOR 0x08000
100 #define SHADINGSTYLE_FLAT 0x10000
101 #define SHADINGSTYLE_GOURAUD 0x20000
102 #define SHADINGSTYLE_PHONG 0x40000
103 #define SHADINGSTYLE_WIRE 0x80000
104 #define MAT_FIRST 0x100000
105 #define WANT_ANAGLYPH 0x200000
106 #define TEX3D_SHADER 0X400000
107 #define TEX3D_LAYER_SHADER 0x800000
108 #define CLIPPLANE_SHADER 0x1000000
109 #define PARTICLE_SHADER 0X2000000
110 #define HAVE_UNLIT_COLOR 0x4000000
114 #define SHADERFLAGS_VOLUME_DATA_BASIC 0x001
115 #define SHADERFLAGS_VOLUME_DATA_SEGMENT 0x002
116 #define SHADERFLAGS_VOLUME_DATA_ISO 0x004
117 #define SHADERFLAGS_VOLUME_DATA_ISO_MODE3 0x008
129 #define SHADERFLAGS_VOLUME_STYLE_DEFAULT 1
130 #define SHADERFLAGS_VOLUME_STYLE_OPACITY 2
131 #define SHADERFLAGS_VOLUME_STYLE_BLENDED 3
132 #define SHADERFLAGS_VOLUME_STYLE_BOUNDARY 4
133 #define SHADERFLAGS_VOLUME_STYLE_CARTOON 5
134 #define SHADERFLAGS_VOLUME_STYLE_COMPOSED 6
135 #define SHADERFLAGS_VOLUME_STYLE_EDGE 7
136 #define SHADERFLAGS_VOLUME_STYLE_PROJECTION 8
137 #define SHADERFLAGS_VOLUME_STYLE_SHADED 9
138 #define SHADERFLAGS_VOLUME_STYLE_SILHOUETTE 10
139 #define SHADERFLAGS_VOLUME_STYLE_TONE 11
160 GLfloat emissionColour[3];
169 GLfloat hatchPercent[2];
170 GLfloat hatchScale[2];
171 GLfloat hatchColour[4];
177 int texCoordGeneratorType;
181 void setUserShaderNode(
struct X3D_Node *me);
183 #define MIN_NODE_TRANSPARENCY 0.0f
184 #define MAX_NODE_TRANSPARENCY 0.99f
186 #define RENDER_MATERIAL_SUBNODES(which) \
187 { struct X3D_Node *tmpN; \
188 POSSIBLE_PROTO_EXPANSION(struct X3D_Node *, which,tmpN) \
195 #define SET_SHADER_SELECTED_FALSE(x3dNode) \
196 switch (X3D_NODE(x3dNode)->_nodeType) { \
197 case NODE_ComposedShader: \
198 X3D_COMPOSEDSHADER(x3dNode)->isSelected = FALSE; \
200 case NODE_ProgramShader: \
201 X3D_PROGRAMSHADER(x3dNode)->isSelected = FALSE; \
203 case NODE_PackagedShader: \
204 X3D_PROGRAMSHADER(x3dNode)->isSelected = FALSE; \
212 #define SET_FOUND_GOOD_SHADER(x3dNode) \
213 switch (X3D_NODE(x3dNode)->_nodeType) { \
214 case NODE_ComposedShader: \
215 foundGoodShader = X3D_COMPOSEDSHADER(x3dNode)->isValid; \
216 X3D_COMPOSEDSHADER(x3dNode)->isSelected = foundGoodShader; \
218 case NODE_ProgramShader: \
219 foundGoodShader = X3D_PROGRAMSHADER(x3dNode)->isValid; \
220 X3D_PROGRAMSHADER(x3dNode)->isSelected = foundGoodShader; \
222 case NODE_PackagedShader: \
223 foundGoodShader = X3D_PROGRAMSHADER(x3dNode)->isValid; \
224 X3D_PACKAGEDSHADER(x3dNode)->isSelected = foundGoodShader; \