imtl.h File Reference
 
 
 
imtl.h File Reference

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


#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

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


Enumeration Type Documentation

Used for normal and vector displacement map generation.

Moved to SDK since FBX also depends on this

Enumerator:
gnormal_params 
Enumerator:
vdm_mult_spin 
vdm_map_vector_enabled 
vdm_map_vector 
vdm_is_hdr 
vdm_method 
{
        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]
{   return (c.r+c.g+c.b)/3.0f; }
static float Intens ( const Color c ) [inline, static]
{ 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]
int IsTex ( Animatable m ) [inline]
int IsMtlBase ( Animatable m ) [inline]
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