hwSurface - define surface parameters of an object
Color | 3F | The color of the surface |
Transparency | 1F | How transparent is the surface; 0 = completely opaque |
SpecColor | 3F | The specular highlight color of the surface |
Shininess | 1F | How "specular" is the surface; 0 = dull, 1.0 = extremely shiny |
Backface | 1B | Is this surface back-facing only? |
TwoSided | 1B | Is this surface visible from both sides? |
Bright | 1B | Is this surface intrinsically bright? |
Invisible | 1B | Is this surface visible at all? |
Wireframe | 1B | Should this surface be drawn as a wireframe? |
Visibility | 1I | Visibility mask for use with hwDisplay->setVisibility |
Texture | 0O | Object to be used to texture map this surface; should be a hwTexture object |
PrunePrim | 1B | Obsolete |
SampVert | 1B | Should the objects using this surface be drawn with texturing simulated by sampling the color at the vertex? |
Blend | 1B | Should this object be alpha blended? |
FlipNormals | 1B | Should the normals of this surface be flipped? |
Uncolored | 1B | Should this surface inherit color/texture attributes from the previously drawn surface? |
PrimSize | 1F | Size of lines or points to be drawn |
Color | {1,1,1} |
Transparency | 0.0 |
SpecColor | {1,1,1} |
Shininess | 0.1; |
Backface | False |
TwoSided | False |
Bright | False |
Invisible | False |
Wireframe | False |
Visibility | 0xFFFFFFFF |
Texture | NULL |
PrunePrim | False |
SampVert | False |
Blend | False |
FlipNormals | False |
Uncolored | False |
PrimSize | 1.0 |
The hwSurface class defines the surface attributes of graphics primitives in HoverWare. Most primitives inherit these properties from the hwSurface class; however, you can always create a hwSurface object and pass it in to one of these objects as the Surface parameter.
The Color is the color of the surface; an RGB triple. Transparency is the amount of transparency the object has; 0.0 is opaque, 1.0 is fully transparent. SpecColor is the specular highlight color of the surface; an RGB triple. Shininess controls how shiny the object is; a Shininess of 0.0 implies a matte object, a Shininess of 1.0 is a very reflective surface. The Backface attribute tells HoverWare that this surface has an orientation which is the reverse of HoverWare's default. The TwoSided attribute tells HoverWare that both sides of a surface are visible. The Bright attribute indicates that the surface is fully emissive; that is, it is always fully bright. The Invisible flag is handy when you want to temporarily not draw a surface. The Wireframe flag tells HoverWare to draw the surface as a wireframe outline only. The Visibility mask is a set of 32 bits which indicates which states this surface is visible in; see hwDisplay->setVisibility for more information. The Texture attribute is an hwTexture object which indicates how the surface should be texture mapped. Finally, the Uncolored flag tells HoverWare that this surface should inherit color and texture attributes from the previously drawn surface.
/* Create a red surface and use it on a ball */ hwObject surf, sphere; surf = hwSurface->create( hwSurface ); HW_MODIFY_3F( surf, hwStrColor, 1, 0, 0 ); sphere = hwSphere->create( hwSphere ); sphere->modify( sphere, hwStrSurface, HW_TYPE_OBJECT, surf ); sphere->draw( sphere ); sphere->destroy( sphere );
# A red surface used on a ball hwSurface surf { Color = {1,0,0} } hwSphere sphere { Surface = surf }