This reference page is linked to from the following overview topics: Principal Classes for Materials and Textures, Bump Mapping, Render Elements.
LightDesc *l; for (int i=0; i\<sc.nLights; i++) { l = sc.Light(i); ..etc }
#include <imtl.h>

Public Member Functions |
|
| void | ResetOutput (int n=-1) |
| virtual Class_ID | ClassID () |
| virtual BOOL | InMtlEditor ()=0 |
| virtual int | Antialias () |
| virtual int | ProjType () |
| virtual LightDesc * | Light (int n)=0 |
| virtual TimeValue | CurTime ()=0 |
| virtual int | NodeID () |
| virtual INode * | Node () |
| virtual Object * | GetEvalObject () |
| virtual Point3 | BarycentricCoords () |
| virtual int | FaceNumber ()=0 |
| virtual Point3 | Normal ()=0 |
| virtual void | SetNormal (Point3 p) |
| virtual Point3 | OrigNormal () |
| virtual Point3 | GNormal ()=0 |
| virtual float | Curve () |
| virtual Point3 | V ()=0 |
| virtual void | SetView (Point3 p)=0 |
| virtual Point3 | OrigView () |
| virtual Point3 | ReflectVector ()=0 |
| virtual Point3 | RefractVector (float ior)=0 |
| virtual void | SetIOR (float ior) |
| virtual float | GetIOR () |
| virtual Point3 | CamPos ()=0 |
| virtual Point3 | P ()=0 |
| virtual Point3 | DP ()=0 |
| virtual void | DP (Point3 &dpdx, Point3 &dpdy) |
| virtual Point3 | PObj ()=0 |
| virtual Point3 | DPObj ()=0 |
| virtual Box3 | ObjectBox ()=0 |
| virtual Point3 | PObjRelBox ()=0 |
| virtual Point3 | DPObjRelBox ()=0 |
| virtual void | ScreenUV (Point2 &uv, Point2 &duv)=0 |
| virtual IPoint2 | ScreenCoord ()=0 |
| virtual Point2 | SurfacePtScreen () |
| virtual Point3 | UVW (int channel=0)=0 |
| virtual Point3 | DUVW (int channel=0)=0 |
| virtual void | DPdUVW (Point3 dP[3], int channel=0)=0 |
| virtual int | BumpBasisVectors (Point3 dP[2], int axis, int channel=0) |
| virtual BOOL | IsSuperSampleOn () |
| virtual BOOL | IsTextureSuperSampleOn () |
| virtual int | GetNSuperSample () |
| virtual float | GetSampleSizeScale () |
| virtual Point3 | UVWNormal (int channel=0) |
| virtual float | RayDiam () |
| virtual float | RayConeAngle () |
| virtual CoreExport AColor | EvalEnvironMap (Texmap *map, Point3 view) |
| virtual void | GetBGColor (Color &bgcol, Color &transp, BOOL fogBG=TRUE)=0 |
| virtual float | CamNearRange () |
| virtual float | CamFarRange () |
| virtual Point3 | PointTo (const Point3 &p, RefFrame ito)=0 |
| virtual Point3 | PointFrom (const Point3 &p, RefFrame ifrom)=0 |
| virtual Point3 | VectorTo (const Point3 &p, RefFrame ito)=0 |
| virtual Point3 | VectorFrom (const Point3 &p, RefFrame ifrom)=0 |
| virtual CoreExport Point3 | VectorToNoScale (const Point3 &p, RefFrame ito) |
| virtual CoreExport Point3 | VectorFromNoScale (const Point3 &p, RefFrame ifrom) |
| virtual void | SetGBufferID (int gbid) |
| virtual FILE * | DebugFile () |
| virtual AColor | EvalGlobalEnvironMap (Point3 dir) |
| virtual BOOL | GetCache (Texmap *map, AColor &c) |
| virtual BOOL | GetCache (Texmap *map, float &f) |
| virtual BOOL | GetCache (Texmap *map, Point3 &p) |
| virtual void | PutCache (Texmap *map, const AColor &c) |
| virtual void | PutCache (Texmap *map, const float f) |
| virtual void | PutCache (Texmap *map, const Point3 &p) |
| virtual void | TossCache (Texmap *map) |
| virtual INT_PTR | Execute (int cmd, ULONG_PTR arg1=0, ULONG_PTR arg2=0, ULONG_PTR arg3=0) |
| LightDesc * | GetAtmosSkipLight () |
| void | SetAtmosSkipLight (LightDesc *lt) |
| virtual int | NRenderElements () |
| virtual IRenderElement * | GetRenderElement (int n) |
| virtual CoreExport Color | DiffuseIllum () |
| bool | IsPhysicalSpace () const |
| template<class T > | |
| void | ScaledToRGB (T &energy) const |
| float | ScaledToRGB (float energy) const |
| void | ScaledToRGB () |
| template<class T > | |
| void | ScalePhysical (T &energy) const |
| float | ScalePhysical (float energy) const |
| template<class T > | |
| void | ScaleRGB (T &energy) const |
| float | ScaleRGB (float energy) const |
| ShadeContext () | |
Public Attributes |
|
| ULONG | mode |
| BOOL | doMaps |
| BOOL | filterMaps |
| BOOL | shadow |
| BOOL | backFace |
| int | mtlNum |
| Color | ambientLight |
| int | nLights |
| int | rayLevel |
| int | xshadeID |
| LightDesc * | atmosSkipLight |
| RenderGlobalContext * | globContext |
| ShadeOutput | out |
| ShadeContext | ( | ) | [inline] |
{
mode = SCMODE_NORMAL; nLights = 0; shadow = TRUE; rayLevel = 0;
globContext = NULL; atmosSkipLight = NULL;
}
| void ResetOutput | ( | int | n = -1 |
) | [inline] |
| virtual Class_ID ClassID | ( | ) | [inline, virtual] |
{ return Class_ID(0,0); } // to distinguish different ShadeContexts.
| virtual BOOL InMtlEditor | ( | ) | [pure virtual] |
| virtual int Antialias | ( | ) | [inline, virtual] |
{return 0;}
| virtual int ProjType | ( | ) | [inline, virtual] |
{ return 0;} // returns: 0: perspective, 1: parallel
| virtual TimeValue CurTime | ( | ) | [pure virtual] |
| virtual int NodeID | ( | ) | [inline, virtual] |
{ return -1; }
| virtual INode* Node | ( | ) | [inline, virtual] |
| virtual Object* GetEvalObject | ( | ) | [inline, virtual] |
// . . .
Object *ob = sc.GetEvalObject();
if (ob \&\& ob-\>IsParticleSystem()) { // . . . }
{ return NULL; } // Returns the evaluated object for this node.
| virtual Point3 BarycentricCoords | ( | ) | [inline, virtual] |
{ return Point3(0,0,0);} // coords relative to triangular face
| virtual int FaceNumber | ( | ) | [pure virtual] |
| virtual Point3 Normal | ( | ) | [pure virtual] |
| virtual void SetNormal | ( | Point3 | p | ) | [inline, virtual] |
{} // used for perturbing normal
| virtual Point3 OrigNormal | ( | ) | [inline, virtual] |
{ return Normal(); } // original surface normal: not affected by SetNormal();
| virtual Point3 GNormal | ( | ) | [pure virtual] |
| virtual float Curve | ( | ) | [inline, virtual] |
{ return 0.0f; } // estimate of dN/dsx, dN/dsy
| virtual Point3 V | ( | ) | [pure virtual] |
| virtual void SetView | ( | Point3 | p | ) | [pure virtual] |
| virtual Point3 OrigView | ( | ) | [inline, virtual] |
{ return V(); } // Original view vector: not affected by SetView();
| virtual Point3 ReflectVector | ( | ) | [pure virtual] |
| virtual Point3 RefractVector | ( | float | ior | ) | [pure virtual] |
| virtual void SetIOR | ( | float | ior | ) | [inline, virtual] |
{} // Set index of refraction
| virtual float GetIOR | ( | ) | [inline, virtual] |
{ return 1.0f; } // Get index of refraction
| virtual Point3 CamPos | ( | ) | [pure virtual] |
| virtual Point3 P | ( | ) | [pure virtual] |
| virtual Point3 DP | ( | ) | [pure virtual] |
{}; // deriv of P, relative to pixel
| virtual Point3 PObj | ( | ) | [pure virtual] |
| virtual Point3 DPObj | ( | ) | [pure virtual] |
| virtual Box3 ObjectBox | ( | ) | [pure virtual] |
| virtual Point3 PObjRelBox | ( | ) | [pure virtual] |
| virtual Point3 DPObjRelBox | ( | ) | [pure virtual] |
| virtual IPoint2 ScreenCoord | ( | ) | [pure virtual] |
| virtual Point2 SurfacePtScreen | ( | ) | [inline, virtual] |
{ return Point2(0.0,0.0); } // return the surface point in screen coords
| virtual Point3 UVW | ( | int | channel = 0 |
) | [pure virtual] |
| virtual Point3 DUVW | ( | int | channel = 0 |
) | [pure virtual] |
| virtual void DPdUVW | ( | Point3 | dP[3], |
| int | channel = 0 |
||
| ) | [pure virtual] |
| virtual int BumpBasisVectors | ( | Point3 | dP[2], |
| int | axis, | ||
| int | channel = 0 |
||
| ) | [inline, virtual] |
{ return 0; }
| virtual BOOL IsSuperSampleOn | ( | ) | [inline, virtual] |
{ return FALSE; }
| virtual BOOL IsTextureSuperSampleOn | ( | ) | [inline, virtual] |
{ return FALSE; }
| virtual int GetNSuperSample | ( | ) | [inline, virtual] |
{ return 0; }
| virtual float GetSampleSizeScale | ( | ) | [inline, virtual] |
{ return 1.0f; }
| virtual Point3 UVWNormal | ( | int | channel = 0 |
) | [inline, virtual] |
{ return Point3(0,0,1); }
| virtual float RayDiam | ( | ) | [inline, virtual] |
{ return Length(DP()); }
| virtual float RayConeAngle | ( | ) | [inline, virtual] |
{ return 0.0f; }
| virtual float CamNearRange | ( | ) | [inline, virtual] |
{return 0.0f;}
| virtual float CamFarRange | ( | ) | [inline, virtual] |
{return 0.0f;}
| virtual void SetGBufferID | ( | int | gbid | ) | [inline, virtual] |
if (inHotPortion)
if (gbufid) sc.SetGBufferID(gbufid);
| virtual FILE* DebugFile | ( | ) | [inline, virtual] |
{ return FALSE; }
| virtual BOOL GetCache | ( | Texmap * | map, |
| float & | f | ||
| ) | [inline, virtual] |
{ return FALSE; }
| virtual void PutCache | ( | Texmap * | map, |
| const float | f | ||
| ) | [inline, virtual] |
{}
| virtual void TossCache | ( | Texmap * | map | ) | [inline, virtual] |
{}
| virtual INT_PTR Execute | ( | int | cmd, |
| ULONG_PTR | arg1 = 0, |
||
| ULONG_PTR | arg2 = 0, |
||
| ULONG_PTR | arg3 = 0 |
||
| ) | [inline, virtual] |
{ return 0; }
| LightDesc* GetAtmosSkipLight | ( | ) | [inline] |
{ return atmosSkipLight; }
| void SetAtmosSkipLight | ( | LightDesc * | lt | ) | [inline] |
{ atmosSkipLight = lt; }
| virtual int NRenderElements | ( | ) | [inline, virtual] |
{
return globContext ? globContext->NRenderElements():0;
}
| virtual IRenderElement* GetRenderElement | ( | int | n | ) | [inline, virtual] |
{
return globContext ? globContext->GetRenderElement(n) : NULL;
}
| virtual CoreExport Color DiffuseIllum | ( | ) | [virtual] |
| bool IsPhysicalSpace | ( | ) | const [inline] |
{ return globContext != NULL && globContext->pToneOp != NULL
&& globContext->pToneOp->IsPhysicalSpace( ); }
| void ScaledToRGB | ( | T & | energy | ) | const [inline] |
{
if ( globContext != NULL && globContext->pToneOp != NULL )
globContext->pToneOp->ScaledToRGB( energy );
}
| float ScaledToRGB | ( | float | energy | ) | const [inline] |
{ return (globContext == NULL || globContext->pToneOp == NULL)
? energy : globContext->pToneOp->ScaledToRGB( energy ); }
| void ScaledToRGB | ( | ) | [inline] |
{ ScaledToRGB( out.c ); }
| void ScalePhysical | ( | T & | energy | ) | const [inline] |
{
if ( globContext != NULL && globContext->pToneOp != NULL )
globContext->pToneOp->ScalePhysical( energy );
}
| float ScalePhysical | ( | float | energy | ) | const [inline] |
{ return (globContext == NULL || globContext->pToneOp == NULL)
? energy : globContext->pToneOp->ScalePhysical( energy ); }
| void ScaleRGB | ( | T & | energy | ) | const [inline] |
{
if ( globContext != NULL && globContext->pToneOp != NULL )
globContext->pToneOp->ScaleRGB( energy );
}
| float ScaleRGB | ( | float | energy | ) | const [inline] |
{ return (globContext == NULL || globContext->pToneOp == NULL)
? energy : globContext->pToneOp->ScaleRGB( energy ); }