Classes | Defines | Typedefs | Enumerations | Functions | Variables

imtl.h File Reference

This reference page is linked to from the following overview topics: Function and Macros for Use with Materials.


#include "maxheap.h"
#include "plugapi.h"
#include "RenderElements.h"
#include "custcont.h"
#include "shape.h"
#include "buildver.h"
#include "autoptr.h"
#include "MtlBaseList.h"
#include "quat.h"

Go to the source code of this file.

Classes

class   PStamp
class   TexHandle
class   TexHandleMaker
class   MtlMakerCallback
class   PickObjectProc
class   IMtlParams
class   RenderData
class   LightDesc
class   ShadeOutput
struct   ISect
class   ISectList
class   RenderGlobalContext
class   ShadeContext
class   ISubMap
class   MtlBase
class   ParamDlg
class   NameAccum
class   IRayTexmap
class   Texmap
class   TexmapContainer
class   Mtl
class   MapSampler
class   UVGen
class   XYZGen
class   TextureOutput
class   IllumParams
class   IReshadeFragment
class   IReshading
class   IValidityToken
class   IValidityTokenImp
class   MtlList
class   MtlLib
class   MtlBaseLib
class   NumList
class   MtlRemap
class   TexDADMgr
class   MtlDADMgr
class   DADBitmapCarrier
class   AttachMatDlgUser
class   INewSubTexmapNotification

Defines

#define  PROJ_PERSPECTIVE   0
#define  PROJ_PARALLEL   1
#define  AXIS_UV   0
#define  AXIS_VW   1
#define  AXIS_WU   2
#define  U_WRAP   (1<<0)
  Indicates the texture map is tiled in the U direction.
#define  V_WRAP   (1<<1)
  Indicates the texture map is tiled in the V direction.
#define  U_MIRROR   (1<<2)
  Indicates the texture map is mirrored in the U direction.
#define  V_MIRROR   (1<<3)
  Indicates the texture map is mirrored in the V direction.
#define  UV_NOISE   (1<<4)
#define  UV_NOISE_ANI   (1<<5)
#define  X_AXIS   0
#define  Y_AXIS   1
#define  Z_AXIS   2
#define  WM_SUB_MTL_BUTTON   WM_USER + 0x04001
#define  WM_TEXMAP_BUTTON   WM_USER + 0x04002
#define  PS_SMALL   0
#define  PS_LARGE   1
#define  PS_TINY   2
#define  PS_TINY_SIZE   24
#define  PS_SMALL_SIZE   32
#define  PS_LARGE_SIZE   88
#define  PSDIM(isz)   ((isz==0)?PS_SMALL_SIZE:(isz==1)?PS_LARGE_SIZE:PS_TINY_SIZE)
#define  ByteWidth(w)   (((w*3+3)/4)*4)
#define  EX_MULT_ALPHA   1
#define  EX_RGB_FROM_ALPHA   2
#define  EX_OPAQUE_ALPHA   4
#define  EX_ALPHA_FROM_RGB   8
#define  SHADELIM_FLAT   1
#define  SHADELIM_GOURAUD   2
#define  SHADELIM_PHONG   3
#define  N_MAX_RENDER_ELEMENTS   32
#define  NO_MOTBLUR   (-1)
#define  SHADECONTEXT_REGATHERING_FLAG   0x80000000
#define  SHADECONTEXT_IS_REGATHERING(sc)   ( (sc).xshadeID & SHADECONTEXT_REGATHERING_FLAG )
#define  SHADECONTEXT_PREPASS_FLAG   0x40000000
#define  SHADECONTEXT_IS_PREPASS(sc)   ( (sc).xshadeID & SHADECONTEXT_PREPASS_FLAG )
#define  SHADECONTEXT_RECURSIVE_EVAL_FLAG   0x20000000
#define  SHADECONTEXT_IS_RECURSIVE_EVAL(sc)   ( (sc).xshadeID & SHADECONTEXT_RECURSIVE_EVAL_FLAG )
#define  SHADECONTEXT_GUESS_SHADOWS_FLAG   0x10000000
#define  SHADECONTEXT_GUESS_SHADOWS(sc)   ( (sc).xshadeID & SHADECONTEXT_GUESS_SHADOWS_FLAG )
#define  SHADECONTEXT_THREAD_MASK   0x0000F000
#define  SHADECONTEXT_THREAD_SHIFT   12
#define  SHADECONTEXT_GET_THREAD(sc)   ( ( (sc).xshadeID & SHADECONTEXT_THREAD_MASK ) >> SHADECONTEXT_THREAD_SHIFT )
#define  SHADECONTEXT_SET_THREAD(sc, thread)   { (sc).xshadeID = ( (sc).xshadeID & (~SHADECONTEXT_THREAD_MASK) ) | ( ( (thread) << SHADECONTEXT_THREAD_SHIFT ) & SHADECONTEXT_THREAD_MASK ); }
#define  SHADECONTEXT_WORKER_MASK   0x00000F00
#define  SHADECONTEXT_WORKER_SHIFT   8
#define  SHADECONTEXT_GET_WORKER(sc)   ( ( (sc).xshadeID & SHADECONTEXT_WORKER_MASK ) >> SHADECONTEXT_WORKER_SHIFT )
#define  SHADECONTEXT_SET_WORKER(sc, worker)   { (sc).xshadeID = ( (sc).xshadeID & (~SHADECONTEXT_WORKER_MASK) ) | ( ( (worker) << SHADECONTEXT_WORKER_SHIFT ) & SHADECONTEXT_WORKER_MASK ); }
#define  SHADECONTEXT_BOUNCE_MASK   0x000000FF
#define  SHADECONTEXT_GET_BOUNCE(sc)   ( (sc).xshadeID & SHADECONTEXT_BOUNCE_MASK )
#define  SHADECONTEXT_SET_BOUNCE(sc, bounce)   { (sc).xshadeID = ( (sc).xshadeID & (~SHADECONTEXT_BOUNCE_MASK) ) | ( (bounce) & SHADECONTEXT_BOUNCE_MASK ); }
#define  SHADECONTEXT_SET_REGATHERING_INFO(sc, thread, worker, bounce)
#define  SCMODE_NORMAL   0
#define  SCMODE_SHADOW   1
#define  MTL_IN_SCENE   (1<<0)
  The material is being used in the scene.
#define  MTL_BEING_EDITED   (1<<1)
  The material's parameters are being displayed in the Material Editor.
#define  MTL_SUB_BEING_EDITED   (1<<2)
  This material OR sub-material texmap is being displayed in the Material Editor.
#define  MTL_TEX_DISPLAY_ENABLED   (1<<3)
  Viewport display enabled for this material (see MTL_SUB_DISPLAY_ENABLED).
#define  MTL_MEDIT_BACKGROUND   (1<<8)
  Material has the background shown in Material Editor.
#define  MTL_MEDIT_BACKLIGHT   (1<<9)
  Material is backlight in the Material Editor.
#define  MTL_OBJTYPE_SHIFT   10
#define  MTL_MEDIT_OBJTYPE   (1<<MTL_OBJTYPE_SHIFT)
  Object type displayed in Material Editor.
#define  MTL_MEDIT_OBJTYPE_MASK   ((1<<MTL_OBJTYPE_SHIFT)|(1<<(MTL_OBJTYPE_SHIFT+1))|(1<<(MTL_OBJTYPE_SHIFT+2)))
#define  MTL_TILING_SHIFT   13
#define  MTL_MEDIT_TILING   (1<<MTL_TILING_SHIFT)
#define  MTL_MEDIT_TILING_MASK   ((1<<MTL_TILING_SHIFT)|(1<<(MTL_TILING_SHIFT+1))|(1<<(MTL_TILING_SHIFT+2)))
#define  MTL_MEDIT_VIDCHECK   (1<<16)
#define  MTL_BROWSE_OPEN1   (1<<18)
  For internal use.
#define  MTL_BROWSE_OPEN2   (1<<19)
  For internal use.
#define  MTL_SUB_DISPLAY_ENABLED   (1<<20)
  Indicates that texture display is enabled for map or material in this subtree.
#define  MTL_CLONED   (1<<28)
  Indicates material or texture was created by being cloned from another material or texture.
#define  MTL_HW_MAT_PRESENT   (1<<29)
#define  MTL_HW_MAT_ENABLED   (1<<30)
#define  MTL_WORK_FLAG   (1<<31)
#define  MTL_DISPLAY_ENABLE_FLAGS   (MTL_TEX_DISPLAY_ENABLED|MTL_SUB_DISPLAY_ENABLED)
  Interactive texture display enabled for THIS mtl base.
#define  MTL_HW_TEX_ENABLED   (1<<17)
  Indicates that the texture should be part of the realtime shader.
#define  MTLREQ_2SIDE   (1<<0)
  The material is 2-sided.
#define  MTLREQ_WIRE   (1<<1)
  The material is wire frame material.
#define  MTLREQ_WIRE_ABS   (1<<2)
  Wire frame material, absolute size.
#define  MTLREQ_TRANSP   (1<<3)
  The material uses transparency.
#define  MTLREQ_UV   (1<<4)
  The material requires UVW coordinates.
#define  MTLREQ_FACEMAP   (1<<5)
  The material uses "face map" UV coordinates.
#define  MTLREQ_XYZ   (1<<6)
  The material requires object XYZ coordinates.
#define  MTLREQ_OXYZ   (1<<7)
  The material requires object ORIGINAL XYZ coordinates.
#define  MTLREQ_BUMPUV   (1<<8)
  The Material requires UV bump vectors.
#define  MTLREQ_BGCOL   (1<<9)
  The material requires background color (e.g.
#define  MTLREQ_PHONG   (1<<10)
  The material requires interpolated normal.
#define  MTLREQ_AUTOREFLECT   (1<<11)
  The material needs to build auto-reflect map.
#define  MTLREQ_AUTOMIRROR   (1<<12)
  The material needs to build auto-mirror map.
#define  MTLREQ_NOATMOS   (1<<13)
  This is used by the Matte material for example.
#define  MTLREQ_ADDITIVE_TRANSP   (1<<14)
  Normally, if this is not specified, the background color is attenuated.
#define  MTLREQ_VIEW_DEP   (1<<15)
  Maps or materials which depend on the view should set this bit in their Requirements() method.
#define  MTLREQ_UV2   (1<<16)
  The material requires second uv channel values (vertex colors).
#define  MTLREQ_BUMPUV2   (1<<17)
  The material requires second uv channel bump vectors.
#define  MTLREQ_PREPRO   (1<<18)
  Pre-processing.
#define  MTLREQ_DONTMERGE_FRAGMENTS   (1<<19)
  No longer used.
#define  MTLREQ_DISPLACEMAP   (1<<20)
  Material has a Displacement map channel.
#define  MTLREQ_SUPERSAMPLE   (1<<21)
  This tells the scanline renderer that you want super sampling - the Standard material uses this.
#define  MTLREQ_WORLDCOORDS   (1<<22)
  This flag is set by UVGen and XYZGen when world coordinates are involved.
#define  MTLREQ_TRANSP_IN_VP   (1<<23)
  This flag should be returned true for any material that wants to be transparent in the viewport.
#define  MTLREQ_FACETED   (1<<24)
  The material should be rendered faceted in the viewports.
#define  MTLREQ_NOEXPOSURE   (1<<25)
  Do not do the tone-op (ie, for matte/shadow material, etc)
#define  MTLREQ_SS_GLOBAL   (1<<26)
  Material requires supersampling but use global sampler.
#define  MTLREQ_REND1   (1<<28)
  USED IN RENDERER.
#define  MTLREQ_REND2   (1<<29)
  USED IN RENDERER.
#define  MTLREQ_REND3   (1<<30)
  USED IN RENDERER.
#define  MTLREQ_REND4   (1<<31)
  USED IN RENDERER.
#define  MAPSLOT_TEXTURE   0
  A slot that holds a texture map.
#define  MAPSLOT_ENVIRON   1
  Generate UVW on-the-fly using view vector, default to spherical.
#define  MAPSLOT_DISPLACEMENT   2
  Displacement maps: a type of texture map.
#define  MAPSLOT_BACKGROUND   3
  Background maps: generate UVW on-the-fly using view vector, default to screen.
#define  UVWSRC_EXPLICIT   0
#define  UVWSRC_OBJXYZ   1
#define  UVWSRC_EXPLICIT2   2
#define  UVWSRC_WORLDXYZ   3
#define  UVWSRC_FACEMAP   5
#define  UVWSRC_HWGEN   6
#define  IID_RAYTRACE_MAP   0xff8d87a5
#define  DYN_BOUNCE   1
#define  DYN_STATIC_FRICTION   2
#define  DYN_SLIDING_FRICTION   3
#define  GNORMAL_CLASS_ID   Class_ID(0x243e22c6, 0x63f6a014)
  Class ID used for the Gnormal and VDM classes found in maxsdk\samples\materials\NormalBump\normalrender.h & vdm.h.
#define  VDM_CLASS_ID   Class_ID(0x152c55c7, 0x26160e93)
#define  STD2_NMAX_TEXMAPS   24
#define  IID_IReshading   0xabe00001
#define  IID_IValidityToken   0xabe00002
#define  ATTACHMAT_IDTOMAT   0
#define  ATTACHMAT_MATTOID   1
#define  ATTACHMAT_NEITHER   2
#define  IID_INewSubMapNotification   Interface_ID(0x3fe013b2, 0x31815874)
#define  DEFAULT_TEXTURE_MAP_SIZE_INCHES   48.0f
#define  DEFAULT_TEXTURE_MAP_SIZE_METERS   1.0f

Typedefs

typedef Tab< IRenderElement * >  RenderElementTab
typedef Mtl MtlHandle
typedef Texmap TexmapHandle

Enumerations

enum   RefFrame { REF_CAMERA = 0, REF_WORLD, REF_OBJECT }
enum   Normal_Block_IDs { gnormal_params }
 

Used for normal and vector displacement map generation.

More...
enum   Normal_Param_IDs {
  gn_mult_spin, gn_bmult_spin, gn_map_normal, gn_map_bump,
  gn_map1on, gn_map2on, gn_method, gn_flip_red,
  gn_flip_green, gn_swap_rg
}
enum   VDM_Block_IDs { vdm_params }
enum   VDM_Param_IDs {
  vdm_mult_spin, vdm_map_vector_enabled, vdm_map_vector, vdm_is_hdr,
  vdm_method
}

Functions

static float  Intens (const AColor &c)
static float  Intens (const Color &c)
CoreExport ISect GetNewISect ()
CoreExport void  DiscardISect (ISect *is)
CoreExport DADBitmapCarrier GetDADBitmapCarrier ()
CoreExport void  SetLoadingMtlLib (MtlLib *ml)
CoreExport void  SetLoadingMtlBaseLib (MtlBaseLib *ml)
CoreExport ClassDesc GetMtlLibCD ()
CoreExport ClassDesc GetMtlBaseLibCD ()
CoreExport UVGen GetNewDefaultUVGen ()
CoreExport XYZGen GetNewDefaultXYZGen ()
CoreExport TextureOutput GetNewDefaultTextureOutput ()
int  IsMtl (Animatable *m)
int  IsTex (Animatable *m)
int  IsMtlBase (Animatable *m)
CoreExport Mtl CombineMaterials (Mtl *mat1, Mtl *mat2, int &mat2Offset)
CoreExport Mtl FitMaterialToMeshIDs (Mesh &mesh, Mtl *mat)
CoreExport Mtl FitMaterialToShapeIDs (BezierShape &shape, Mtl *mat)
CoreExport Mtl FitMaterialToPatchIDs (PatchMesh &patch, Mtl *mat)
CoreExport Mtl FitMaterialToPolyMeshIDs (MNMesh &mesh, Mtl *mat)
CoreExport void  FitMeshIDsToMaterial (Mesh &mesh, Mtl *mat)
CoreExport void  FitShapeIDsToMaterial (BezierShape &shape, Mtl *mat)
CoreExport void  FitPatchIDsToMaterial (PatchMesh &patch, Mtl *mat)
CoreExport void  FitPolyMeshIDsToMaterial (MNMesh &mesh, Mtl *mat)
CoreExport Mtl CondenseMatAssignments (Mesh &mesh, Mtl *mat)
CoreExport Mtl CondenseMatAssignments (BezierShape &shape, Mtl *mat)
CoreExport Mtl CondenseMatAssignments (PatchMesh &patch, Mtl *mat)
CoreExport Mtl CondenseMatAssignments (MNMesh &mesh, Mtl *mat)
CoreExport BOOL  DoAttachMatOptionDialog (IObjParam *ip, AttachMatDlgUser *user)

Variables

CoreExport MCHAR  TEXMAP_CAT_2D []
CoreExport MCHAR  TEXMAP_CAT_3D []
CoreExport MCHAR  TEXMAP_CAT_COMP []
CoreExport MCHAR  TEXMAP_CAT_COLMOD []
CoreExport MCHAR  TEXMAP_CAT_ENV []

Define Documentation

#define PROJ_PERSPECTIVE   0

Definition at line 46 of file imtl.h.

#define PROJ_PARALLEL   1

Definition at line 47 of file imtl.h.

#define AXIS_UV   0

Definition at line 49 of file imtl.h.

#define AXIS_VW   1

Definition at line 50 of file imtl.h.

#define AXIS_WU   2

Definition at line 51 of file imtl.h.

#define X_AXIS   0

Definition at line 65 of file imtl.h.

#define Y_AXIS   1

Definition at line 66 of file imtl.h.

#define Z_AXIS   2

Definition at line 67 of file imtl.h.

#define WM_SUB_MTL_BUTTON   WM_USER + 0x04001

Definition at line 74 of file imtl.h.

#define WM_TEXMAP_BUTTON   WM_USER + 0x04002

Definition at line 78 of file imtl.h.

#define PS_SMALL   0

Definition at line 85 of file imtl.h.

#define PS_LARGE   1

Definition at line 86 of file imtl.h.

#define PS_TINY   2

Definition at line 87 of file imtl.h.

#define PS_TINY_SIZE   24

Definition at line 89 of file imtl.h.

#define PS_SMALL_SIZE   32

Definition at line 90 of file imtl.h.

#define PS_LARGE_SIZE   88

Definition at line 91 of file imtl.h.

#define PSDIM (   isz )    ((isz==0)?PS_SMALL_SIZE:(isz==1)?PS_LARGE_SIZE:PS_TINY_SIZE)

Definition at line 92 of file imtl.h.

#define ByteWidth (   w )    (((w*3+3)/4)*4)

Definition at line 94 of file imtl.h.

#define EX_MULT_ALPHA   1

Definition at line 148 of file imtl.h.

#define EX_RGB_FROM_ALPHA   2

Definition at line 149 of file imtl.h.

#define EX_OPAQUE_ALPHA   4

Definition at line 150 of file imtl.h.

#define EX_ALPHA_FROM_RGB   8

Definition at line 151 of file imtl.h.

#define SHADELIM_FLAT   1

Definition at line 779 of file imtl.h.

#define SHADELIM_GOURAUD   2

Definition at line 780 of file imtl.h.

#define SHADELIM_PHONG   3

Definition at line 781 of file imtl.h.

#define N_MAX_RENDER_ELEMENTS   32

Definition at line 786 of file imtl.h.

#define NO_MOTBLUR   (-1)

Definition at line 1042 of file imtl.h.

#define SHADECONTEXT_REGATHERING_FLAG   0x80000000

Definition at line 1385 of file imtl.h.

#define SHADECONTEXT_IS_REGATHERING (   sc )    ( (sc).xshadeID & SHADECONTEXT_REGATHERING_FLAG )

Definition at line 1386 of file imtl.h.

#define SHADECONTEXT_PREPASS_FLAG   0x40000000

Definition at line 1389 of file imtl.h.

#define SHADECONTEXT_IS_PREPASS (   sc )    ( (sc).xshadeID & SHADECONTEXT_PREPASS_FLAG )

Definition at line 1390 of file imtl.h.

#define SHADECONTEXT_RECURSIVE_EVAL_FLAG   0x20000000

Definition at line 1395 of file imtl.h.

#define SHADECONTEXT_IS_RECURSIVE_EVAL (   sc )    ( (sc).xshadeID & SHADECONTEXT_RECURSIVE_EVAL_FLAG )

Definition at line 1396 of file imtl.h.

#define SHADECONTEXT_GUESS_SHADOWS_FLAG   0x10000000

Definition at line 1400 of file imtl.h.

#define SHADECONTEXT_GUESS_SHADOWS (   sc )    ( (sc).xshadeID & SHADECONTEXT_GUESS_SHADOWS_FLAG )

Definition at line 1401 of file imtl.h.

#define SHADECONTEXT_THREAD_MASK   0x0000F000

Definition at line 1404 of file imtl.h.

#define SHADECONTEXT_THREAD_SHIFT   12

Definition at line 1405 of file imtl.h.

#define SHADECONTEXT_GET_THREAD (   sc )    ( ( (sc).xshadeID & SHADECONTEXT_THREAD_MASK ) >> SHADECONTEXT_THREAD_SHIFT )

Definition at line 1406 of file imtl.h.

#define SHADECONTEXT_SET_THREAD (   sc,
  thread 
)    { (sc).xshadeID = ( (sc).xshadeID & (~SHADECONTEXT_THREAD_MASK) ) | ( ( (thread) << SHADECONTEXT_THREAD_SHIFT ) & SHADECONTEXT_THREAD_MASK ); }

Definition at line 1407 of file imtl.h.

#define SHADECONTEXT_WORKER_MASK   0x00000F00

Definition at line 1410 of file imtl.h.

#define SHADECONTEXT_WORKER_SHIFT   8

Definition at line 1411 of file imtl.h.

#define SHADECONTEXT_GET_WORKER (   sc )    ( ( (sc).xshadeID & SHADECONTEXT_WORKER_MASK ) >> SHADECONTEXT_WORKER_SHIFT )

Definition at line 1412 of file imtl.h.

#define SHADECONTEXT_SET_WORKER (   sc,
  worker 
)    { (sc).xshadeID = ( (sc).xshadeID & (~SHADECONTEXT_WORKER_MASK) ) | ( ( (worker) << SHADECONTEXT_WORKER_SHIFT ) & SHADECONTEXT_WORKER_MASK ); }

Definition at line 1413 of file imtl.h.

#define SHADECONTEXT_BOUNCE_MASK   0x000000FF

Definition at line 1416 of file imtl.h.

#define SHADECONTEXT_GET_BOUNCE (   sc )    ( (sc).xshadeID & SHADECONTEXT_BOUNCE_MASK )

Definition at line 1417 of file imtl.h.

#define SHADECONTEXT_SET_BOUNCE (   sc,
  bounce 
)    { (sc).xshadeID = ( (sc).xshadeID & (~SHADECONTEXT_BOUNCE_MASK) ) | ( (bounce) & SHADECONTEXT_BOUNCE_MASK ); }

Definition at line 1418 of file imtl.h.

#define SHADECONTEXT_SET_REGATHERING_INFO (   sc,
  thread,
  worker,
  bounce 
)
Value:

Definition at line 1422 of file imtl.h.

#define SCMODE_NORMAL   0

Definition at line 1429 of file imtl.h.

#define SCMODE_SHADOW   1

Definition at line 1430 of file imtl.h.

#define UVWSRC_EXPLICIT   0

Definition at line 2396 of file imtl.h.

#define UVWSRC_OBJXYZ   1

Definition at line 2397 of file imtl.h.

#define UVWSRC_EXPLICIT2   2

Definition at line 2398 of file imtl.h.

#define UVWSRC_WORLDXYZ   3

Definition at line 2399 of file imtl.h.

#define UVWSRC_FACEMAP   5

Definition at line 2403 of file imtl.h.

#define UVWSRC_HWGEN   6

Definition at line 2404 of file imtl.h.

#define IID_RAYTRACE_MAP   0xff8d87a5

Definition at line 3268 of file imtl.h.

#define DYN_BOUNCE   1

Definition at line 3654 of file imtl.h.

#define DYN_STATIC_FRICTION   2

Definition at line 3655 of file imtl.h.

#define DYN_SLIDING_FRICTION   3

Definition at line 3656 of file imtl.h.

#define GNORMAL_CLASS_ID   Class_ID(0x243e22c6, 0x63f6a014)

Class ID used for the Gnormal and VDM classes found in maxsdk\samples\materials\NormalBump\normalrender.h & vdm.h.

Definition at line 3659 of file imtl.h.

#define VDM_CLASS_ID   Class_ID(0x152c55c7, 0x26160e93)

Definition at line 3660 of file imtl.h.

#define STD2_NMAX_TEXMAPS   24

Definition at line 4561 of file imtl.h.

#define IID_IReshading   0xabe00001

Definition at line 4938 of file imtl.h.

#define IID_IValidityToken   0xabe00002

Definition at line 5043 of file imtl.h.

#define ATTACHMAT_IDTOMAT   0

Definition at line 5460 of file imtl.h.

#define ATTACHMAT_MATTOID   1

Definition at line 5461 of file imtl.h.

#define ATTACHMAT_NEITHER   2

Definition at line 5462 of file imtl.h.

#define IID_INewSubMapNotification   Interface_ID(0x3fe013b2, 0x31815874)

Definition at line 5544 of file imtl.h.

#define DEFAULT_TEXTURE_MAP_SIZE_INCHES   48.0f

Definition at line 5558 of file imtl.h.

#define DEFAULT_TEXTURE_MAP_SIZE_METERS   1.0f

Definition at line 5559 of file imtl.h.


Typedef Documentation

Definition at line 1046 of file imtl.h.

typedef Mtl* MtlHandle

Definition at line 5091 of file imtl.h.

typedef Texmap* TexmapHandle

Definition at line 5092 of file imtl.h.


Enumeration Type Documentation

enum RefFrame

Used for normal and vector displacement map generation.

Moved to SDK since FBX also depends on this

Enumerator:
gnormal_params 

Definition at line 3665 of file imtl.h.

Enumerator:
vdm_params 

Definition at line 3683 of file imtl.h.

{
    vdm_params
};
Enumerator:
vdm_mult_spin 
vdm_map_vector_enabled 
vdm_map_vector 
vdm_is_hdr 
vdm_method 

Definition at line 3688 of file imtl.h.

{
    vdm_mult_spin,              // Scaling value (float)
    vdm_map_vector_enabled,     // Whether the map is enabled or not (bool)
    vdm_map_vector,             // A sub-map defining the actual vector data as a Texmap 
    vdm_is_hdr,                 // Whether the sub-map is high-dynamic range and doesn't need re-scaling (i.e. value = pixel * 2.0 - 1.0). (bool)
    vdm_method                  // Space the vector map is defined in [0==World, 1==Object, 2==Tangent] (int)
};

Function Documentation

static float Intens ( const AColor c ) [inline, static]

Definition at line 69 of file imtl.h.

{   return (c.r+c.g+c.b)/3.0f; }
static float Intens ( const Color c ) [inline, static]

Definition at line 70 of file imtl.h.

{ return (c.r+c.g+c.b)/3.0f; }
CoreExport ISect* GetNewISect ( )
Remarks:
This global function is available in release 2.0 and later only.

Returns a pointer to a new ISect structure.
CoreExport void DiscardISect ( ISect is )
Remarks:
This global function is available in release 2.0 and later only.

Deletes the ISect structure whose pointer is passed.
Parameters:
ISect *is

Points to the ISect structure to free.
Data Members:
ISect *first;

A pointer to the first intersection.
CoreExport DADBitmapCarrier* GetDADBitmapCarrier ( )
Remarks:
This global function returns a pointer to the BitmapCarrier. Note that there is only two of these: one for the source, and one for the destination. Developers should not delete these. Sample code using this class is available in /MAXSDK/SAMPLES/MATERIALS/BMTEX.CPP.
CoreExport void SetLoadingMtlLib ( MtlLib ml )
CoreExport void SetLoadingMtlBaseLib ( MtlBaseLib ml )
CoreExport ClassDesc* GetMtlLibCD ( )
CoreExport ClassDesc* GetMtlBaseLibCD ( )
CoreExport UVGen* GetNewDefaultUVGen ( )
CoreExport XYZGen* GetNewDefaultXYZGen ( )
CoreExport TextureOutput* GetNewDefaultTextureOutput ( )
int IsMtl ( Animatable m ) [inline]

Definition at line 5429 of file imtl.h.

{ return m->SuperClassID()==MATERIAL_CLASS_ID; }
int IsTex ( Animatable m ) [inline]

Definition at line 5430 of file imtl.h.

{ return m->SuperClassID()==TEXMAP_CLASS_ID; }
int IsMtlBase ( Animatable m ) [inline]

Definition at line 5431 of file imtl.h.

{ return IsMtl(m)||IsTex(m); }
CoreExport Mtl* CombineMaterials ( Mtl mat1,
Mtl mat2,
int &  mat2Offset 
)
CoreExport Mtl* FitMaterialToMeshIDs ( Mesh mesh,
Mtl mat 
)
CoreExport Mtl* FitMaterialToShapeIDs ( BezierShape shape,
Mtl mat 
)
CoreExport Mtl* FitMaterialToPatchIDs ( PatchMesh patch,
Mtl mat 
)
CoreExport Mtl* FitMaterialToPolyMeshIDs ( MNMesh mesh,
Mtl mat 
)
CoreExport void FitMeshIDsToMaterial ( Mesh mesh,
Mtl mat 
)
CoreExport void FitShapeIDsToMaterial ( BezierShape shape,
Mtl mat 
)
CoreExport void FitPatchIDsToMaterial ( PatchMesh patch,
Mtl mat 
)
CoreExport void FitPolyMeshIDsToMaterial ( MNMesh mesh,
Mtl mat 
)
CoreExport Mtl* CondenseMatAssignments ( Mesh mesh,
Mtl mat 
)
CoreExport Mtl* CondenseMatAssignments ( BezierShape shape,
Mtl mat 
)
CoreExport Mtl* CondenseMatAssignments ( PatchMesh patch,
Mtl mat 
)
CoreExport Mtl* CondenseMatAssignments ( MNMesh mesh,
Mtl mat 
)
CoreExport BOOL DoAttachMatOptionDialog ( IObjParam ip,
AttachMatDlgUser user 
)
Remarks:
This global function is available in release 3.0 and later only.

This displays the dialog that you currently get in Edit(able) mesh when you attach objects to each other. It gives options for how to deal with combining materials, and whether or not to condense materials which have excess material slots.
Parameters:
IObjParam *ip

The interface pointer.

AttachMatDlgUser *user

Points to the AttachMatDlgUser object.
Returns:
TRUE if the user OKed the dialog; FALSE if the user Cancelled.

Variable Documentation

CoreExport MCHAR TEXMAP_CAT_2D[]

Definition at line 3244 of file imtl.h.

CoreExport MCHAR TEXMAP_CAT_3D[]

Definition at line 3245 of file imtl.h.

CoreExport MCHAR TEXMAP_CAT_COMP[]

Definition at line 3246 of file imtl.h.

CoreExport MCHAR TEXMAP_CAT_COLMOD[]

Definition at line 3247 of file imtl.h.

CoreExport MCHAR TEXMAP_CAT_ENV[]

Definition at line 3248 of file imtl.h.