# I3DExInstancePrimitive Struct Reference
[External Interfaces]

Inheritance diagram for I3DExInstancePrimitive:

List of all members.

## Public Member Functions
virtual uint32 MCCOMAPI | GetObjectNumber ()=0
virtual void MCCOMAPI | GetInstanceMesh (uint32 instanceKind, FacetMesh **mesh)=0
virtual void MCCOMAPI | GetInstanceList (uint32 instanceKind, TInstanceList **instanceList)=0
virtual void MCCOMAPI | GetInstanceLink (uint32 instanceKind, I3DShInstance **link)=0
virtual uint32 MCCOMAPI | GetInstanceKindFromInstance (I3DShInstance *link)=0
virtual boolean MCCOMAPI | AllwaysRender ()=0

## Detailed Description

A primitive (see I3DExGeometricPrimitive) can derive from this interface when it is composed of multiple identical parts. For example a tree in which leaves are stored as instances or Generators that duplicate existing (linked) instances. This allow storing the geometry of each object type only once. Note that you will either need to provide your own Ray tracing implementation for this primitive (see IRaytracablePrimitive) or use the Instance link .

## Member Function Documentation

virtual boolean MCCOMAPI I3DExInstancePrimitive::AllwaysRender | ( |  | ) | `[pure virtual]`

True if the instances should be displayed even when not in final renderer

virtual uint32 MCCOMAPI I3DExInstancePrimitive::GetInstanceKindFromInstance | ( | I3DShInstance * | link | ) | `[pure virtual]`

Return the number of an object given the instance

Parameters:

  | link | A pointer to the instance that identify the object

Returns:
  A 0-based index that identifies the object

virtual void MCCOMAPI I3DExInstancePrimitive::GetInstanceLink | ( | uint32 | instanceKind,
|  | I3DShInstance ** | link |
| ) |  |  | `[pure virtual]`

Returns the link to the instance for a given object.

Parameters:

  | instanceKind | A 0-based index that identifies the object (the number of objects is defined by GetObjectNumber())
  | link | A pointer to the instance that is returned.

virtual void MCCOMAPI I3DExInstancePrimitive::GetInstanceList | ( | uint32 | instanceKind,
|  | TInstanceList ** | instanceList |
| ) |  |  | `[pure virtual]`

Returns the list of instances for a given object

Parameters:

  | instanceKind | A 0-based index that identifies the object (the number of objects is defined by GetObjectNumber())
  | instanceList | A pointer (counted) to the instance list that is returned.

virtual void MCCOMAPI I3DExInstancePrimitive::GetInstanceMesh | ( | uint32 | instanceKind,
|  | FacetMesh ** | mesh |
| ) |  |  | `[pure virtual]`

Returns the mesh for a given object.

Parameters:

  | instanceKind | A 0-based index that identifies the object (the number of objects is defined by GetObjectNumber())
  | mesh | A pointer to the facet mesh that is returned.

virtual uint32 MCCOMAPI I3DExInstancePrimitive::GetObjectNumber | ( |  | ) | `[pure virtual]`

Returns the number of "template" objects being instanciated in the primitive

The documentation for this struct was generated from the following file:

- I3dExInstancePrimitive.h