IFXMarker

The IFXMarker interface is used to mark, or identify, resources of the scene in order to determine whether or not they should be included in a given process. Typically, the mark is used to identify components that need to be loaded or written to a file by the Loader or Writer, respectively. When a given entity in the scene is marked, with Mark(), it marks itself and any child entities that it has and upon which it depends for resource information. Thus, a single Mark() call recursively marks the entity and all entities that it uses.

Entities cannot be unmarked through the IFXMarker interface. Instead, the scenegraph interface is used and IFXSceneGraph::UnmarkAll() effectively causes all of the entities and resources in the scene to be unmarked. The IFXMarker also supports the use of a streaming priority for entities, as well as a UserData field that can be assigned to entities by the author and can be defined to convey whatever information the author wants.

IFXMarker inherits the IFXUnknown interface, and is supported by many different components.

When to Use

IFXMarker is used whenever a group of entities or a section of the scenegraph needs to be marked so that those entities can be distinguished from everything else. Typical uses include marking things so that the Loader and Writer can load and write only the necessary or requested entities. Additionally, the IFXMarker interface allows for an entity (and all its children) to be assigned a streaming priority. This influences the order in which entities and their resources are streamed into the scene. Lastly, the IFXMarker interface is used to get and set the UserData field of entities. This is a simple unsigned integer value that can be assigned to entities in order to convey some arbitrary property or classification or whatever the author wishes.

Interface Methods

Description

Initialize

Declares database ownership

Mark

Recursively marks a subset of the database

Marked

Determines if a component is marked

GetPriority

Gets the streaming sequence relative to other components

SetPriority

Sets the streaming priority ( zero = initial load segment )

GetUserData

Gets the contents of the user data field

SetUserData

Sets the contents of the use data field


IFXMarker::Initialize(IFXSceneGraph* pInSceneGraph)

Parameters:

pInSceneGraph

Pointer to the scenegraph

Return Values


IFXMarker::Mark()

Parameters:

None

Return Values


IFXMarker::Marked(BOOL* pbOutMarked)

Parameters:

pbOutMarked

Indicates if the entity is marked

Return Values


IFXMarker::GetPriority()

Parameters:

None

Return Values:

U32


IFXMarker::SetPriority(U32 uInPriority)

Parameters:

uInPriority

Priority number

Return Values:

None


IFXMarker::GetUserData()

Parameters:

None

Return Values:

U32


IFXMarker::SetUserData(U32 uInUserData)

Parameters:

uInUserData

User data ID

Return Values:

None

 

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