MaterialAtom

This class is used to identify unique material instances within a given scene in 3D Studio MAX§. These unique materials are stored in a list of MaterialAtoms for the purpose of ensuring that the exporter does not export identical materials more than once.

When to use

This class is used by the MAXMaterialConverter class. For each material in the scene, the MAXMaterialConverter first checks the list of MaterialAtoms to see if it has already logged that material. If not, then that material is added to the list. If the material is already found in the list, then the exporter will not export a new instance of the material but will instead point to the material already stored in the list.

Interface Methods

Description

MaterialAtom

Class constructor (Note that there are four versions of this constructor)

GetMAXName

Returns the name of a MAX material

GetKeyName

Returns the key name

GetResourceId

Unique material identifier assigned by the exporter to each unique instance of a MAX material

operator ==

Equivalence operator


MaterialAtom::MaterialAtom(const MaterialAtom& Source)

This is a copy constructor for the MaterialAtom class. It is used to make a deep copy of an existing MaterialAtom object. The copy constuctor is used by the Visual C++§ Standard Template Library when copying temporary MaterialAtom objects created on the stack to a more permanent list.

Parameters:

Source

Source MaterialAtom from which a new MaterialAtom object shall be created

Return Values:

None


MaterialAtom::MaterialAtom(CIFXString* pName, U32 uResourceId)

This is one form of the standard constructor for the MaterialAtom class. This constructor creates an object that contains only a name and a resource identifier. When using this form of the constructor, material properties such as diffuse, specular and ambient shading are to be populated elsewhere.

Parameters:

pName

Name of the material to which this MaterialAtom refers

uResourceId

Resource identifier for the material to which this object refers

Return Values:

None


MaterialAtom::MaterialAtom( CIFXString* pInMAXName, CIFXString* pInKeyName, U32 uResourceId )

This is one form of the standard constructor for the MaterialAtom class. This constructor contains a standard name, a unique name used as an identifier and a resource ID used in IFX space. When using this form of the constructor, material properties such as diffuse, specular and ambient shading are to be populated elsewhere.

Parameters:

pInMAXName

Name of the material to which this MaterialAtom refers

pInKeyName

Unique name used as identifier

uResourceId

Resource identifier for the material to which this object refers

Return Values:

None


MaterialAtom::MaterialAtom(MAXMultiMaterial* pMAXMultiMaterial, U32 uResourceId)

This is one form of standard constructor for the MaterialAtom class. This form of constructor creates an object that contains all material information needed by the Shockwave renderer.

Parameters:

pMAXMultiMaterial

Contains all the material information which is to be copied to this MaterialAtom

uResourceId

Resource identifier for the material to which this object refers

Return values:

None


MaterialAtom::GetMAXName()

This method returns the name of the MAX material to which this MaterialAtom refers. This is the internal name used by 3D Studio MAX.

Parameters:

None

Return Values:

CIFXString*

This is the name of the MAX material.


MaterialAtom::GetKeyName()

This method returns the key name of the MAX material to which this MaterialAtom refers. This is the internal name used by 3D Studio MAX.

Parameters:

None

Return Values:

CIFXString*

This is the name of the MAX material.


MaterialAtom::GetResourceId()

This method returns the resource identifier used in Shockwave 3D space to uniquely identify materials resources.

Parameters:

None

Return Values:

U32

This is resource identifier of the material.


MaterialAtom::operator ==(MAXMultiMaterial& inMaterial)

This overloaded operator tests for equivalence between a MaterialAtom class and similar class called a MAXMultiMaterial. These objects are never binary equivalent internally, however, the materials which they reference (or could reference) can be equivalent and it is for this form of equivalence that this operator tests.

Parameters:

None

Return values:

BOOL

This is TRUE if the objects are equivaent. It is FALSE if they are not equivalent.

§See asterisked (*) statement at Legal Information © 2001 Intel Corporation.