# I3DExNewVolumePrimitive Struct Reference
[External Interfaces]

Inheritance diagram for I3DExNewVolumePrimitive:

List of all members.

## Public Member Functions
virtual void MCCOMAPI | BeginRender ()=0
virtual void MCCOMAPI | EndRender ()=0
virtual void MCCOMAPI | TraceRay (const Ray3D &ray, const Ray3D &localRay, const real64 &tmin, const real64 &tmax, TMCColorRGBA &inOutColor, TColorRGBLinearEffect *linearEffect, I3DExRaytracer *raytracer, I3DShInstance *instance, uint32 instanceNb, boolean isShadowRay, boolean isIndirectRay, boolean oldShadowFiltering)=0
virtual boolean MCCOMAPI | UsesShaders () const =0

## Detailed Description

This interface contains extra methods for volume primitives allowing more advanced interaction with the scene. If this interface is implemented, neither GetVolumeDensity nor GetVolumeAttenuation are called.

## Member Function Documentation

virtual void MCCOMAPI I3DExNewVolumePrimitive::BeginRender | ( |  | ) | `[pure virtual]`

Called at the beginning of a rendering.

virtual void MCCOMAPI I3DExNewVolumePrimitive::EndRender | ( |  | ) | `[pure virtual]`

Called at the end of a rendering.

virtual void MCCOMAPI I3DExNewVolumePrimitive::TraceRay | ( | const Ray3D & | ray,
|  | const Ray3D & | localRay,
|  | const real64 & | tmin,
|  | const real64 & | tmax,
|  | TMCColorRGBA & | inOutColor,
|  | TColorRGBLinearEffect * | linearEffect,
|  | I3DExRaytracer * | raytracer,
|  | I3DShInstance * | instance,
|  | uint32 | instanceNb,
|  | boolean | isShadowRay,
|  | boolean | isIndirectRay,
|  | boolean | oldShadowFiltering |
| ) |  |  | `[pure virtual]`

Filter a ray by a volume primitive.

Parameters:

  | ray | The ray in global coordinates
  | localRay | The ray in local coordinates
  | tmin | The beginning of the segment
  | tmax | The end of the segment
  | inOutColor | On input, the color of the point behind the ray. On ouput the color of the light once filtered through the volume
  | raytracer | A pointer to the raytracer used for the lighting
  | instance | The instance of the volume primitive
  | instanceNb | A id in the raytraced grid for the hit instance (can be different with same instance in replicators)
  | isShadowRay | True if the ray is a shadow ray.
  | isIndirectRay | True if the ray has already hit a reflective or semi transparent surface

virtual boolean MCCOMAPI I3DExNewVolumePrimitive::UsesShaders | ( |  | ) | const`[pure virtual]`

Returns true if this volume primitive uses the shaders that are applyed to it.

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

- I3dExPrimitive.h