HAttrProperty Class Reference

This is where the surface attributes are stored. Initially, the HAttrProperties are filled with the surpace properties as entered by the user in the PWS "Surface" properties. Then, the HAttrProperty is filled with the values that came back from the previous plugins's Evaluate calls. It is up to you whether you combine with what's there or strictly overwrite the contents. More...

#include <HPropert.h>

Inheritance diagram for HAttrProperty:

Inheritance graph
[legend]
Collaboration diagram for HAttrProperty:

Collaboration graph
[legend]
List of all members.

Public Member Functions

HAttrPropertyGetBaseAttr ()
HColorPropertyGetDiffuseColor ()
HFloatPropertyGetDiffuseFallOff ()
HColorPropertyGetAmbianceColor ()
HColorPropertyGetAmbianceColorForRead ()
HFloatPropertyGetAmbiance ()
HColorPropertyGetSpecularColor ()
HColorPropertyGetSpecularColorForRead ()
HFloatPropertyGetSpecularSize ()
HFloatPropertyGetSpecularIntensity ()
HFloatPropertyGetRoughness ()
HFloatPropertyGetRoughnessScale ()
HFloatPropertyGetTransparency ()
HFloatPropertyGetDensity ()
HFloatPropertyGetRefraction ()
HFloatPropertyGetTranslucency ()
HFloatPropertyGetReflectivity ()
HPercentPropertyGetReflectiveBlend ()
HFloatPropertyGetReflectivityFallOff ()
HFloatPropertyGetRadiance ()
HBoolPropertyGetGlow ()
BOOL IsComplex ()
BOOL IsBump ()
BOOL IsInvariant ()
BOOL IsDisplace ()
HMaterialGetMaterialHead ()

Static Public Member Functions

static HAttrPropertyNew (HAttrPropertyInfo *propinfo)
static HAttrPropertyNew ()

Detailed Description

This is where the surface attributes are stored. Initially, the HAttrProperties are filled with the surpace properties as entered by the user in the PWS "Surface" properties. Then, the HAttrProperty is filled with the values that came back from the previous plugins's Evaluate calls. It is up to you whether you combine with what's there or strictly overwrite the contents.

All Get... functions will always return a pointer to a property. To determine if the property have a value you must call the property's IsNull() function.

Definition at line 233 of file HPropert.h.


Member Function Documentation

HFloatProperty * HAttrProperty::GetAmbiance  ) 
 

Retrieves a pointer to the HFloatProperty which contains the current Ambiance brightness of the surface at hit point. Ambiance is the value that determines the brightness of an object when no light is hitting it.

HColorProperty * HAttrProperty::GetAmbianceColor  ) 
 

Retrieves a pointer to the HColorProperty which contains the current Ambiance Color of the surface at hit point.

If the ambiance color is "Not Set", then the ambiance color will match the diffuse color even if that color ultimately comes from a decal.

HColorProperty * HAttrProperty::GetAmbianceColorForRead  ) 
 

If you call GetAmbianceColor you will get those actual properties just like it always use to be. If the user leaves the ambiance color marked as "Not Set" in the PWS then when the render is invoked it will use the diffuse color for ambiance Color. So the GetAmbianceColorForRead will return one of two properties : If Ambiance color is marked as "not set" it will actually return the Diffuse Color property, not the Ambiance Color Property. So with that being said you should only use this property for read purposes, because if you call StoreValue on it you will actually be changing the Diffuse Color not the Ambiance color property.

HAttrProperty * HAttrProperty::GetBaseAttr  ) 
 

HAttrProperty always points to the attribute value for the object you are on, never any other. But if you are on a HGroup you may call GetBaseAttr to retrieve the HAttrProperty on the HModelCache.

HFloatProperty * HAttrProperty::GetDensity  ) 
 

Retrieves a pointer to the HFloatProperty which contains the current Density of the surface at hit point.

As a material thickens, it eventually becomes opaque, and most water becomes opaque when only a few feet deep. Density is affected by size and is calibrated to the suggested scale used by Animation:Master (in increments of .001/cm), so transparent objects must be built to the correct scale. Colored glass has a density of "2", while seawater has a density of "5",

HColorProperty * HAttrProperty::GetDiffuseColor  ) 
 

Retrieves a pointer to the HColorProperty which contains the current Diffuse color of the surface at hit point.

HFloatProperty * HAttrProperty::GetDiffuseFallOff  ) 
 

Retrieves a pointer to the HFloatProperty which contains the current Diffuse falloff value of the surface at hit point.

Diffuse Falloff controls the transition from light to dark in shaded areas on a model.

HBoolProperty * HAttrProperty::GetGlow  ) 
 

Retrieves a pointer to the HBoolProperty indicating if the surface should glow. Glow is a post effect. But this could bu used by a shader to decide how to shade. The glow color is the diffuse color of the base attribute of the model. The intensity of the glow is controlled by the Ambiance value, and the radius of the glow is a property of the Choreography.

HMaterial* HAttrProperty::GetMaterialHead  ) 
 

HFloatProperty * HAttrProperty::GetRadiance  ) 
 

Retrieves a pointer to the HFloatProperty which contains the current Radiance of the surface at hit point.

Radiance is used by Radiosity. Normally radiance is determined from diffuse color. But the user may change it to get special effects.

HPercentProperty * HAttrProperty::GetReflectiveBlend  ) 
 

Retrieves a pointer to the HPercentProperty which contains the current Reflection Blending of the surface at hit point.

Reflective Blend indicates how reflections are combined with surface color. 0 indicates reflections are additive, 100% indicates the reflections are blended.

HFloatProperty * HAttrProperty::GetReflectivity  ) 
 

Retrieves a pointer to the HFloatProperty which contains the current Reflectivity of the surface at hit point.

HFloatProperty * HAttrProperty::GetReflectivityFallOff  ) 
 

Retrieves a pointer to the HFloatProperty which contains the current Reflectivity Falloff of the surface at hit point.

Reflection Falloff indicates at which distance reflections are no longer visible. It is specified as the distance measured from the ray’s intersection to the reflecting surface.

HFloatProperty * HAttrProperty::GetRefraction  ) 
 

Retrieves a pointer to the HFloatProperty which contains the current Index of Refraction (IOR) of the surface at hit point.

The IOR is that of the surface properties no matter if the ray hits from inside or outside.

HFloatProperty * HAttrProperty::GetRoughness  ) 
 

Retrieves a pointer to the HFloatProperty which contains the current Roughness of the surface at hit point.

Roughness is a turbulence function that perturbs the surface of the objects. Thus is Roughness in not 0, the surface normal retrieved from the HShading and HTexInfo classes will already have been perturbed accordingly.

HFloatProperty * HAttrProperty::GetRoughnessScale  ) 
 

Retrieves a pointer to the HFloatProperty which contains the current Roughness Scale of the surface at hit point.

Roughness Scale controls the size of the roughness. Small values show high frequency patterns.

HColorProperty * HAttrProperty::GetSpecularColor  ) 
 

Retrieves a pointer to the HColorProperty which contains the current Specular Color of the surface at hit point.

If the specular color is Not Set, then the specular color will be set to match the diffuse color even if that color ultimately comes from a decal.

HColorProperty * HAttrProperty::GetSpecularColorForRead  ) 
 

If you call GetSpecularColor you will get those actual properties just like it always use to be. If the user leaves the specular color marked as "Not Set" in the PWS then when the render is invoked it will use the diffuse color for specular Color. So the GetSpecularColorForRead will return one of two properties : If Specular color is marked as "not set" it will actually return the Diffuse Color property, not the Specular Color Property. So with that being said you should only use this property for read purposes, because if you call StoreValue on it you will actually be changing the Diffuse Color not the Specular color property.

HFloatProperty * HAttrProperty::GetSpecularIntensity  ) 
 

Retrieves a pointer to the HFloatProperty which contains the current Specular Intensity of the surface at hit point.

HFloatProperty * HAttrProperty::GetSpecularSize  ) 
 

Retrieves a pointer to the HFloatProperty which contains the current Specular Size of the surface at hit point.

By convention, if Specular Size is 0, there should be no highlight at all.

HFloatProperty * HAttrProperty::GetTranslucency  ) 
 

Retrieves a pointer to the HFloatProperty which contains the current Translucency of the surface at hit point.

HFloatProperty * HAttrProperty::GetTransparency  ) 
 

Retrieves a pointer to the HFloatProperty which contains the current Transparency of the surface at hit point.

A value of 0 means the surface is totally opaque. A value of 1 means the surface is fully transparent.

BOOL HAttrProperty::IsBump  ) 
 

Tells whether any of the materials on a pre-composited attr had bump on.

BOOL HAttrProperty::IsComplex  ) 
 

Tells whether a pre-composited attr is complex (Combiners etc..).

BOOL HAttrProperty::IsDisplace  ) 
 

Tells whether any of the materials on a pre-composited attr had displace on.

BOOL HAttrProperty::IsInvariant  ) 
 

Tells whether any of the materials on a pre-composited attr were invariant.

static HAttrProperty* HAttrProperty::New  )  [static]
 

Reimplemented from HContainerProperty.

static HAttrProperty* HAttrProperty::New HAttrPropertyInfo propinfo  )  [static]
 


The documentation for this class was generated from the following files:
This A:M SDK v12.0 documentation is maintained by Hash Inc. Please address any comments concerning this documentation to AMReports. If you have any information, knowledge, or documentation to share with the A:M developer community, please post them on the Hash SDK forum.

Generated on Thu Oct 27 11:46:52 2005 with doxygen 1.4.5 written by Dimitri van Heesch, © 1997-2001