9
class SlShaderInstance;
12
// attribute flag bits
13
enum atFlagBits {AF_SMOOTH=1, AF_MATTE=2, AF_SIDES1=4, AF_ORIENTATION=8, AF_DICE_BINARY=16};
20
Attributes(const Attributes &attributes);
22
Attributes &operator=(const Attributes &attributes);
24
// attribute flags for RiShadingInterpolation, RiMatte,
25
// RiOrientation/RiReverseOrientation and RiSides
29
RtColor color, opacity; // RiColor & RiOpacity
30
RtFloat texCoords[8]; // RiTextureCoordinates
33
RtFloat effectiveShadingRate; // RiShadingRate
35
// array of all current active lightsources, borrowed reference, do not delete!
36
SlShaderInstance** lightsources;
38
// Shaders, borrowed references, do not delete!
39
SlShaderInstance* surface_shader;
40
SlShaderInstance* displacement_shader;
41
SlShaderInstance* atmosphere_shader;
42
SlShaderInstance* interior_shader;
43
SlShaderInstance* exterior_shader;
47
RtBound bound; // RiBound
48
RtBound detail; // RiDetail
49
RtFloat minVisible, lowerTransition, // RiDetailRange
50
upperTransition, maxVisible;
51
RtFloat valueApproximation; // RiGeometricApproximation (flatnesss)
53
Transform* cubicBasisMatrix[2]; // RiBasis, borrowed references, do not delete!
54
RtInt cubicBasisStep[2];
55
//trimCurveList; TODO, or not...
57
// optional attributes
58
RtFloat displacementbound_sphere;
59
RtFloat opacity_threshold;
60
unsigned int numlights, pad0;