imtl.h File Reference

#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"

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
 

Macros

#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. More...
 
#define V_WRAP   (1<<1)
 Indicates the texture map is tiled in the V direction. More...
 
#define U_MIRROR   (1<<2)
 Indicates the texture map is mirrored in the U direction. More...
 
#define V_MIRROR   (1<<3)
 Indicates the texture map is mirrored in the V direction. More...
 
#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. More...
 
#define MTL_BEING_EDITED   (1<<1)
 The material's parameters are being displayed in the Material Editor. More...
 
#define MTL_SUB_BEING_EDITED   (1<<2)
 This material OR sub-material texmap is being displayed in the Material Editor. More...
 
#define MTL_TEX_DISPLAY_ENABLED   (1<<3)
 Viewport display enabled for this material (see MTL_SUB_DISPLAY_ENABLED). More...
 
#define MTL_MEDIT_BACKGROUND   (1<<8)
 Material has the background shown in Material Editor. More...
 
#define MTL_MEDIT_BACKLIGHT   (1<<9)
 Material is backlight in the Material Editor. More...
 
#define MTL_OBJTYPE_SHIFT   10
 
#define MTL_MEDIT_OBJTYPE   (1<<MTL_OBJTYPE_SHIFT)
 Object type displayed in Material Editor. More...
 
#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. More...
 
#define MTL_BROWSE_OPEN2   (1<<19)
 For internal use. More...
 
#define MTL_SUB_DISPLAY_ENABLED   (1<<20)
 Indicates that texture display is enabled for map or material in this subtree. More...
 
#define MTL_CLONED   (1<<28)
 Indicates material or texture was created by being cloned from another material or texture. More...
 
#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. More...
 
#define MTL_HW_TEX_ENABLED   (1<<17)
 Indicates that the texture should be part of the realtime shader. More...
 
#define MTLREQ_2SIDE   (1<<0)
 The material is 2-sided. More...
 
#define MTLREQ_WIRE   (1<<1)
 The material is wire frame material. More...
 
#define MTLREQ_WIRE_ABS   (1<<2)
 Wire frame material, absolute size. More...
 
#define MTLREQ_TRANSP   (1<<3)
 The material uses transparency. More...
 
#define MTLREQ_UV   (1<<4)
 The material requires UVW coordinates. More...
 
#define MTLREQ_FACEMAP   (1<<5)
 The material uses "face map" UV coordinates. More...
 
#define MTLREQ_XYZ   (1<<6)
 The material requires object XYZ coordinates. More...
 
#define MTLREQ_OXYZ   (1<<7)
 The material requires object ORIGINAL XYZ coordinates. More...
 
#define MTLREQ_BUMPUV   (1<<8)
 The Material requires UV bump vectors. More...
 
#define MTLREQ_BGCOL   (1<<9)
 The material requires background color (e.g. More...
 
#define MTLREQ_PHONG   (1<<10)
 The material requires interpolated normal. More...
 
#define MTLREQ_AUTOREFLECT   (1<<11)
 The material needs to build auto-reflect map. More...
 
#define MTLREQ_AUTOMIRROR   (1<<12)
 The material needs to build auto-mirror map. More...
 
#define MTLREQ_NOATMOS   (1<<13)
 This is used by the Matte material for example. More...
 
#define MTLREQ_ADDITIVE_TRANSP   (1<<14)
 Normally, if this is not specified, the background color is attenuated. More...
 
#define MTLREQ_VIEW_DEP   (1<<15)
 Maps or materials which depend on the view should set this bit in their Requirements() method. More...
 
#define MTLREQ_UV2   (1<<16)
 The material requires second uv channel values (vertex colors). More...
 
#define MTLREQ_BUMPUV2   (1<<17)
 The material requires second uv channel bump vectors. More...
 
#define MTLREQ_PREPRO   (1<<18)
 Pre-processing. More...
 
#define MTLREQ_DONTMERGE_FRAGMENTS   (1<<19)
 No longer used. More...
 
#define MTLREQ_DISPLACEMAP   (1<<20)
 Material has a Displacement map channel. More...
 
#define MTLREQ_SUPERSAMPLE   (1<<21)
 This tells the scanline renderer that you want super sampling - the Standard material uses this. More...
 
#define MTLREQ_WORLDCOORDS   (1<<22)
 This flag is set by UVGen and XYZGen when world coordinates are involved. More...
 
#define MTLREQ_TRANSP_IN_VP   (1<<23)
 This flag should be returned true for any material that wants to be transparent in the viewport. More...
 
#define MTLREQ_FACETED   (1<<24)
 The material should be rendered faceted in the viewports. More...
 
#define MTLREQ_NOEXPOSURE   (1<<25)
 Do not do the tone-op (ie, for matte/shadow material, etc) More...
 
#define MTLREQ_SS_GLOBAL   (1<<26)
 Material requires supersampling but use global sampler. More...
 
#define MTLREQ_REND1   (1<<28)
 USED IN RENDERER. More...
 
#define MTLREQ_REND2   (1<<29)
 USED IN RENDERER. More...
 
#define MTLREQ_REND3   (1<<30)
 USED IN RENDERER. More...
 
#define MTLREQ_REND4   (1<<31)
 USED IN RENDERER. More...
 
#define MAPSLOT_TEXTURE   0
 A slot that holds a texture map. More...
 
#define MAPSLOT_ENVIRON   1
 Generate UVW on-the-fly using view vector, default to spherical. More...
 
#define MAPSLOT_DISPLACEMENT   2
 Displacement maps: a type of texture map. More...
 
#define MAPSLOT_BACKGROUND   3
 Background maps: generate UVW on-the-fly using view vector, default to screen. More...
 
#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 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. More...
 
#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 MtlMtlHandle
 
typedef TexmapTexmapHandle
 

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 ISectGetNewISect ()
 
CoreExport void DiscardISect (ISect *is)
 
CoreExport DADBitmapCarrierGetDADBitmapCarrier ()
 
CoreExport void SetLoadingMtlLib (MtlLib *ml)
 
CoreExport void SetLoadingMtlBaseLib (MtlBaseLib *ml)
 
CoreExport ClassDescGetMtlLibCD ()
 
CoreExport ClassDescGetMtlBaseLibCD ()
 
CoreExport UVGenGetNewDefaultUVGen ()
 
CoreExport XYZGenGetNewDefaultXYZGen ()
 
CoreExport TextureOutputGetNewDefaultTextureOutput ()
 
int IsMtl (Animatable *m)
 
int IsTex (Animatable *m)
 
int IsMtlBase (Animatable *m)
 
CoreExport MtlCombineMaterials (Mtl *mat1, Mtl *mat2, int &mat2Offset)
 
CoreExport MtlFitMaterialToMeshIDs (Mesh &mesh, Mtl *mat)
 
CoreExport MtlFitMaterialToShapeIDs (BezierShape &shape, Mtl *mat)
 
CoreExport MtlFitMaterialToPatchIDs (PatchMesh &patch, Mtl *mat)
 
CoreExport MtlFitMaterialToPolyMeshIDs (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 MtlCondenseMatAssignments (Mesh &mesh, Mtl *mat)
 
CoreExport MtlCondenseMatAssignments (BezierShape &shape, Mtl *mat)
 
CoreExport MtlCondenseMatAssignments (PatchMesh &patch, Mtl *mat)
 
CoreExport MtlCondenseMatAssignments (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 []
 

Macro Definition Documentation

#define PROJ_PERSPECTIVE   0
#define PROJ_PARALLEL   1
#define AXIS_UV   0
#define AXIS_VW   1
#define AXIS_WU   2
#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 
)
Value:
{ (sc).xshadeID = SHADECONTEXT_REGATHERING_FLAG | \
( (bounce) & SHADECONTEXT_BOUNCE_MASK ); }
#define SHADECONTEXT_THREAD_SHIFT
Definition: imtl.h:1399
#define SHADECONTEXT_BOUNCE_MASK
Definition: imtl.h:1410
#define SHADECONTEXT_WORKER_SHIFT
Definition: imtl.h:1405
#define SHADECONTEXT_WORKER_MASK
Definition: imtl.h:1404
#define SHADECONTEXT_THREAD_MASK
Definition: imtl.h:1398
#define SHADECONTEXT_REGATHERING_FLAG
Definition: imtl.h:1379
#define SCMODE_NORMAL   0
#define SCMODE_SHADOW   1
#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 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

Typedef Documentation

typedef Mtl* MtlHandle
typedef Texmap* TexmapHandle

Enumeration Type Documentation

enum RefFrame
Enumerator
REF_CAMERA 
REF_WORLD 
REF_OBJECT 
Definition: imtl.h:779
Definition: imtl.h:779
Definition: imtl.h:779

Used for normal and vector displacement map generation.

Note
Moved to SDK since FBX also depends on this
Enumerator
gnormal_params 
3628 {
3630 };
Definition: imtl.h:3629
Enumerator
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 
3632 {
3633  gn_mult_spin,
3634  gn_bmult_spin,
3635  gn_map_normal,
3636  gn_map_bump,
3637  gn_map1on,
3638  gn_map2on,
3639  gn_method,
3640  gn_flip_red,
3641  gn_flip_green,
3642  gn_swap_rg
3643 };
Definition: imtl.h:3634
Definition: imtl.h:3640
Definition: imtl.h:3633
Definition: imtl.h:3638
Definition: imtl.h:3642
Definition: imtl.h:3635
Definition: imtl.h:3636
Definition: imtl.h:3639
Definition: imtl.h:3637
Definition: imtl.h:3641
Enumerator
vdm_params 
3646 {
3647  vdm_params
3648 };
Definition: imtl.h:3647
Enumerator
vdm_mult_spin 
vdm_map_vector_enabled 
vdm_map_vector 
vdm_is_hdr 
vdm_method 
3651 {
3652  vdm_mult_spin, // Scaling value (float)
3653  vdm_map_vector_enabled, // Whether the map is enabled or not (bool)
3654  vdm_map_vector, // A sub-map defining the actual vector data as a Texmap
3655  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)
3656  vdm_method // Space the vector map is defined in [0==World, 1==Object, 2==Tangent] (int)
3657 };
Definition: imtl.h:3656
Definition: imtl.h:3654
Definition: imtl.h:3655
Definition: imtl.h:3652
Definition: imtl.h:3653

Function Documentation

static float Intens ( const AColor c)
inlinestatic
68 { return (c.r+c.g+c.b)/3.0f; }
float r
These values are in the range 0.0 to 1.0.
Definition: acolor.h:36
float g
Definition: acolor.h:36
float b
Definition: acolor.h:36
static float Intens ( const Color c)
inlinestatic
69 { return (c.r+c.g+c.b)/3.0f; }
float g
These values are in the range 0.0 to 1.0.
Definition: color.h:76
float b
These values are in the range 0.0 to 1.0.
Definition: color.h:78
float r
These values are in the range 0.0 to 1.0.
Definition: color.h:74
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
5329 { return m->SuperClassID()==MATERIAL_CLASS_ID; }
#define MATERIAL_CLASS_ID
Materials super-class ID.
Definition: plugapi.h:359
virtual CoreExport SClass_ID SuperClassID()=0
Retrieves a constant representing the type of the plugin.
int IsTex ( Animatable m)
inline
5330 { return m->SuperClassID()==TEXMAP_CLASS_ID; }
#define TEXMAP_CLASS_ID
Texture maps super-class ID.
Definition: plugapi.h:360
virtual CoreExport SClass_ID SuperClassID()=0
Retrieves a constant representing the type of the plugin.
int IsMtlBase ( Animatable m)
inline
5331 { return IsMtl(m)||IsTex(m); }
int IsMtl(Animatable *m)
Definition: imtl.h:5329
int IsTex(Animatable *m)
Definition: imtl.h:5330
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[]
CoreExport MCHAR TEXMAP_CAT_3D[]
CoreExport MCHAR TEXMAP_CAT_COMP[]
CoreExport MCHAR TEXMAP_CAT_COLMOD[]
CoreExport MCHAR TEXMAP_CAT_ENV[]