iunwrap.h

Go to the documentation of this file.
00001 //-------------------------------------------------------------
00002 // Access to UVW Unwrap
00003 //
00004 
00005 
00006 #pragma once
00007 
00008 #include "iFnPub.h"
00009 #include "object.h"
00010 
00011 #define UNWRAP_CLASSID  Class_ID(0x02df2e3a,0x72ba4e1f)
00012 
00013 // Flags
00014 #define CONTROL_FIT         (1<<0)
00015 #define CONTROL_CENTER      (1<<1)
00016 #define CONTROL_ASPECT      (1<<2)
00017 #define CONTROL_UNIFORM     (1<<3)
00018 #define CONTROL_HOLD        (1<<4)
00019 #define CONTROL_INIT        (1<<5)
00020 #define CONTROL_OP          (CONTROL_FIT|CONTROL_CENTER|CONTROL_ASPECT|CONTROL_UNIFORM)
00021 #define CONTROL_INITPARAMS  (1<<10)
00022 
00023 #define IS_MESH     1
00024 #define IS_PATCH    2
00025 #define IS_NURBS    3
00026 #define IS_MNMESH   4
00027 
00028 
00029 
00030 
00031 #define FLAG_DEAD       1
00032 #define FLAG_HIDDEN     2
00033 #define FLAG_FROZEN     4
00034 //#define FLAG_QUAD     8
00035 #define FLAG_RIGPOINT       8  //vertex specific flags
00036 #define FLAG_SELECTED   16
00037 #define FLAG_CURVEDMAPPING  32
00038 #define FLAG_INTERIOR   64
00039 #define FLAG_WEIGHTMODIFIED 128
00040 //face/edge specific flags
00041 #define FLAG_HIDDENEDGEA    256
00042 #define FLAG_HIDDENEDGEB    512
00043 #define FLAG_HIDDENEDGEC    1024
00044 
00045 
00046 
00047 #define ID_TOOL_SELECT  0x0001
00048 #define ID_TOOL_MOVEPIVOT   0x0002
00049 #define ID_TOOL_MOVE    0x0100
00050 #define ID_TOOL_ROTATE  0x0110
00051 #define ID_TOOL_SCALE   0x0120
00052 #define ID_TOOL_PAN     0x0130
00053 #define ID_TOOL_ZOOM    0x0140
00054 #define ID_TOOL_PICKMAP 0x0160
00055 #define ID_TOOL_ZOOMREG 0x0170
00056 #define ID_TOOL_UVW     0x0200
00057 #define ID_TOOL_PROP    0x0210 
00058 #define ID_TOOL_SHOWMAP 0x0220
00059 #define ID_TOOL_UPDATE  0x0230
00060 #define ID_TOOL_ZOOMEXT 0x0240
00061 #define ID_TOOL_BREAK   0x0250
00062 #define ID_TOOL_WELD    0x0260
00063 #define ID_TOOL_WELD_SEL 0x0270
00064 #define ID_TOOL_HIDE     0x0280
00065 #define ID_TOOL_UNHIDE   0x0290
00066 #define ID_TOOL_FREEZE   0x0300
00067 #define ID_TOOL_UNFREEZE     0x0310
00068 #define ID_TOOL_TEXTURE_COMBO 0x0320
00069 #define ID_TOOL_SNAP 0x0330
00070 #define ID_TOOL_LOCKSELECTED 0x0340
00071 #define ID_TOOL_MIRROR 0x0350
00072 #define ID_TOOL_FILTER_SELECTEDFACES 0x0360
00073 #define ID_TOOL_FILTER_MATID 0x0370
00074 #define ID_TOOL_INCSELECTED 0x0380
00075 #define ID_TOOL_FALLOFF 0x0390
00076 #define ID_TOOL_FALLOFF_SPACE 0x0400
00077 #define ID_TOOL_FLIP 0x0410
00078 #define ID_TOOL_DECSELECTED 0x0420
00079 
00080 
00081 
00082 
00083 #define FILL_MODE_OFF       1
00084 #define FILL_MODE_SOLID     2
00085 #define FILL_MODE_BDIAGONAL 3
00086 #define FILL_MODE_CROSS     4
00087 #define FILL_MODE_DIAGCROSS 5
00088 #define FILL_MODE_FDIAGONAL 6
00089 #define FILL_MODE_HORIZONAL 7
00090 #define FILL_MODE_VERTICAL  8
00091 
00092 
00093 #define SKETCH_SELPICK      1
00094 #define SKETCH_SELDRAG      2
00095 #define SKETCH_SELCURRENT   3
00096 #define SKETCH_DRAWMODE     4
00097 #define SKETCH_APPLYMODE    5
00098 
00099 #define SKETCH_FREEFORM     1
00100 #define SKETCH_LINE         2
00101 #define SKETCH_BOX          3
00102 #define SKETCH_CIRCLE       4
00103 
00104 
00105 
00106 
00107 class IUnwrapMod;
00108 
00109 //***************************************************************
00110 //Function Publishing System stuff   
00111 //****************************************************************
00112 #define UNWRAP_CLASSID  Class_ID(0x02df2e3a,0x72ba4e1f)
00113 #define UNWRAP_INTERFACE Interface_ID(0x53b3409b, 0x18ff7ab8)
00114 #define UNWRAP_INTERFACE2 Interface_ID(0x53b3409b, 0x18ff7ab9)
00115 //5.1.05
00116 #define UNWRAP_INTERFACE3 Interface_ID(0x53b3409b, 0x18ff7ac0)
00117 
00118 #define UNWRAP_INTERFACE4 Interface_ID(0x53b3409b, 0x18ff7ac1)
00119 
00120 
00121 #define GetIUnwrapInterface(cd) \
00122             (IUnwrapMod *)(cd)->GetInterface(UNWRAP_INTERFACE)
00123 
00124 enum {  unwrap_planarmap,unwrap_save,unwrap_load, unwrap_reset, unwrap_edit,
00125         unwrap_setMapChannel,unwrap_getMapChannel,
00126         unwrap_setProjectionType,unwrap_getProjectionType,
00127         unwrap_setVC,unwrap_getVC,
00128         unwrap_move,unwrap_moveh,unwrap_movev,
00129         unwrap_rotate,
00130         unwrap_scale,unwrap_scaleh,unwrap_scalev,
00131         unwrap_mirrorh,unwrap_mirrorv,
00132         unwrap_expandsel, unwrap_contractsel,
00133         unwrap_setFalloffType,unwrap_getFalloffType,
00134         unwrap_setFalloffSpace,unwrap_getFalloffSpace,
00135         unwrap_setFalloffDist,unwrap_getFalloffDist,
00136         unwrap_breakselected,
00137         unwrap_weldselected, unwrap_weld,
00138         unwrap_updatemap,unwrap_displaymap,unwrap_ismapdisplayed,
00139         unwrap_setuvspace, unwrap_getuvspace,
00140         unwrap_options,
00141         unwrap_lock,
00142         unwrap_hide, unwrap_unhide,
00143         unwrap_freeze, unwrap_thaw,
00144         unwrap_filterselected,
00145         unwrap_pan,unwrap_zoom, unwrap_zoomregion, unwrap_fit, unwrap_fitselected,
00146         unwrap_snap,
00147         unwrap_getcurrentmap,unwrap_setcurrentmap, unwrap_numbermaps,
00148         unwrap_getlinecolor,unwrap_setlinecolor,
00149         unwrap_getselectioncolor,unwrap_setselectioncolor,
00150         unwrap_getrenderwidth,unwrap_setrenderwidth,
00151         unwrap_getrenderheight,unwrap_setrenderheight,
00152         unwrap_getusebitmapres,unwrap_setusebitmapres,
00153         unwrap_getweldtheshold,unwrap_setweldtheshold,
00154 
00155         unwrap_getconstantupdate,unwrap_setconstantupdate,
00156         unwrap_getshowselectedvertices,unwrap_setshowselectedvertices,
00157         unwrap_getmidpixelsnap,unwrap_setmidpixelsnap,
00158 
00159         unwrap_getmatid,unwrap_setmatid, unwrap_numbermatids,
00160         unwrap_getselectedverts, unwrap_selectverts,
00161         unwrap_isvertexselected,
00162 
00163         unwrap_moveselectedvertices,
00164         unwrap_rotateselectedverticesc,
00165         unwrap_rotateselectedvertices,
00166         unwrap_scaleselectedverticesc,
00167         unwrap_scaleselectedvertices,
00168         unwrap_getvertexposition,
00169         unwrap_numbervertices,
00170 
00171         unwrap_movex, unwrap_movey, unwrap_movez,
00172 
00173         unwrap_getselectedpolygons, unwrap_selectpolygons, unwrap_ispolygonselected,
00174         unwrap_numberpolygons,
00175 
00176         unwrap_detachedgeverts,
00177         unwrap_fliph,unwrap_flipv ,
00178 
00179         unwrap_setlockaspect,unwrap_getlockaspect,
00180 
00181         unwrap_setmapscale,unwrap_getmapscale,
00182         unwrap_getselectionfromface,
00183 
00184         unwrap_forceupdate,
00185         unwrap_zoomtogizmo,
00186 
00187         unwrap_setvertexposition,
00188         unwrap_addvertex,
00189         unwrap_markasdead,
00190 
00191         unwrap_numberpointsinface,
00192         unwrap_getvertexindexfromface,
00193         unwrap_gethandleindexfromface,
00194         unwrap_getinteriorindexfromface,
00195 
00196         unwrap_getvertexgindexfromface,
00197         unwrap_gethandlegindexfromface,
00198         unwrap_getinteriorgindexfromface,
00199 
00200 
00201         unwrap_addpointtoface,
00202         unwrap_addpointtohandle,
00203         unwrap_addpointtointerior,
00204 
00205         unwrap_setfacevertexindex,
00206         unwrap_setfacehandleindex,
00207         unwrap_setfaceinteriorindex,
00208 
00209         unwrap_updateview,
00210 
00211         unwrap_getfaceselfromstack,
00212 
00213 //UNFOLD STUFF
00214         unwrap_selectfacesbynormal,
00215         unwrap_selectclusterbynormal,
00216         unwrap_selectpolygonsupdate,
00217 
00218         unwrap_normalmap,
00219         unwrap_normalmapnoparams,
00220         unwrap_normalmapdialog,
00221 
00222         unwrap_flattenmap,
00223         unwrap_flattenmapdialog,
00224         unwrap_flattenmapnoparams,
00225 
00226         unwrap_unfoldmap,
00227         unwrap_unfoldmapnoparams,
00228         unwrap_unfoldmapdialog,
00229         
00230 
00231         unwrap_hideselectedpolygons,
00232         unwrap_unhideallpolygons,
00233 
00234         unwrap_getnormal,
00235         unwrap_setseedface,
00236 
00237         unwrap_showvertexconnectionlist,
00238 
00239 //COPY PASTE
00240         unwrap_copy,
00241         unwrap_paste,
00242         unwrap_pasteinstance,
00243 
00244         unwrap_setdebuglevel,
00245 
00246 //STITCH STUFF
00247         unwrap_stitchverts,
00248         unwrap_stitchvertsnoparams,
00249         unwrap_stitchvertsdialog,
00250         unwrap_selectelement,
00251 
00252 //TILEOPTIONS
00253         unwrap_gettilemap,
00254         unwrap_settilemap,
00255         unwrap_gettilemaplimit,
00256         unwrap_settilemaplimit,
00257         unwrap_gettilemapcontrast,
00258         unwrap_settilemapcontrast,
00259 
00260         unwrap_getshowmap,unwrap_setshowmap,
00261 
00262         unwrap_setlimitsoftsel,
00263         unwrap_getlimitsoftsel,
00264 
00265         
00266 //SELECTION TOOLS AND OPTIONS
00267         unwrap_setlimitsoftselrange,
00268         unwrap_getlimitsoftselrange,
00269 
00270         unwrap_getvertexweight, unwrap_setvertexweight,
00271         unwrap_isweightmodified,unwrap_modifyweight,
00272 
00273         unwrap_getgeom_elemmode,unwrap_setgeom_elemmode,
00274 
00275         unwrap_getgeom_planarmode,unwrap_setgeom_planarmode,
00276         unwrap_getgeom_planarmodethreshold,unwrap_setgeom_planarmodethreshold,
00277 
00278         unwrap_getwindowx, unwrap_getwindowy, unwrap_getwindoww, unwrap_getwindowh, 
00279 
00280         unwrap_getbackfacecull,unwrap_setbackfacecull,
00281 
00282         unwrap_getoldselmethod,unwrap_setoldselmethod,
00283         unwrap_selectbymatid,
00284         unwrap_selectbysg,
00285 
00286         unwrap_gettvelementmode,unwrap_settvelementmode,
00287 
00288         unwrap_geomexpandsel, unwrap_geomcontractsel,
00289 
00290         unwrap_getalwaysedit,unwrap_setalwaysedit,
00291 
00292         unwrap_getshowvertexconnectionlist,unwrap_setshowvertexconnectionlist,
00293 
00294         unwrap_getfilterselected,unwrap_setfilterselected,
00295 
00296         unwrap_getsnap, unwrap_setsnap,
00297         unwrap_getlock, unwrap_setlock,
00298 
00299         unwrap_pack,
00300         unwrap_packnoparams,
00301         unwrap_packdialog,
00302 
00303         unwrap_gettvsubobjectmode,unwrap_settvsubobjectmode,
00304 
00305         unwrap_getselectedfaces, unwrap_selectfaces,
00306         unwrap_isfaceselected,
00307 
00308         unwrap_getfillmode,unwrap_setfillmode,
00309 
00310         unwrap_moveselected,
00311         unwrap_rotateselectedc,
00312         unwrap_rotateselected,
00313         unwrap_scaleselectedc,
00314         unwrap_scaleselected,
00315 
00316         unwrap_getselectededges, unwrap_selectedges,
00317         unwrap_isedgeselected,
00318 
00319         unwrap_getdisplayopenedge,
00320         unwrap_setdisplayopenedge,
00321         
00322         unwrap_getopenedgecolor,
00323         unwrap_setopenedgecolor,
00324 
00325         unwrap_getuvedgemode,
00326         unwrap_setuvedgemode,
00327 
00328         unwrap_getopenedgemode,
00329         unwrap_setopenedgemode,
00330 
00331         unwrap_uvedgeselect,
00332         unwrap_openedgeselect,
00333 
00334         unwrap_selectverttoedge,
00335         unwrap_selectverttoface,
00336 
00337         unwrap_selectedgetovert,
00338         unwrap_selectedgetoface,
00339 
00340         unwrap_selectfacetovert,
00341         unwrap_selectfacetoedge,
00342 
00343         unwrap_getdisplayhiddenedge,
00344         unwrap_setdisplayhiddenedge,
00345 
00346         unwrap_gethandlecolor,unwrap_sethandlecolor,
00347 
00348         unwrap_getfreeformmode,unwrap_setfreeformmode,
00349 
00350         unwrap_getfreeformcolor,unwrap_setfreeformcolor,
00351         unwrap_scaleselectedxy,
00352 
00353         unwrap_snappivot,
00354         unwrap_getpivotoffset,unwrap_setpivotoffset,
00355         unwrap_getselcenter,
00356 
00357         unwrap_sketch,
00358         unwrap_sketchnoparams,
00359         unwrap_sketchdialog,
00360 
00361         unwrap_sketchreverse,
00362         
00363         unwrap_gethitsize,unwrap_sethitsize,
00364 
00365         unwrap_getresetpivotonsel,unwrap_setresetpivotonsel,
00366 
00367         unwrap_getpolymode,unwrap_setpolymode,
00368         unwrap_polyselect,
00369 
00370         unwrap_getselectioninsidegizmo,unwrap_setselectioninsidegizmo,
00371 
00372         unwrap_setasdefaults,
00373         unwrap_loaddefaults,
00374 
00375         unwrap_getshowshared,unwrap_setshowshared,
00376         unwrap_getsharedcolor,unwrap_setsharedcolor,
00377         
00378         unwrap_showicon,
00379 
00380         unwrap_getsyncselectionmode,unwrap_setsyncselectionmode,
00381         unwrap_synctvselection,unwrap_syncgeomselection,
00382 
00383         unwrap_getbackgroundcolor,unwrap_setbackgroundcolor,
00384 
00385         unwrap_updatemenubar,
00386 
00387         unwrap_getbrightcentertile,unwrap_setbrightcentertile,
00388 
00389         unwrap_getblendtiletoback,unwrap_setblendtiletoback,
00390 
00391         unwrap_getblendtoback,unwrap_setblendtoback,
00392 
00393         unwrap_getpaintmode,unwrap_setpaintmode,
00394         unwrap_getpaintsize,unwrap_setpaintsize,
00395         unwrap_incpaintsize,unwrap_decpaintsize,
00396 
00397         unwrap_getticksize,unwrap_setticksize,
00398 
00399 //NEW
00400         unwrap_getgridsize,unwrap_setgridsize,
00401         unwrap_getgridsnap,unwrap_setgridsnap,
00402         unwrap_getgridvisible,unwrap_setgridvisible,
00403         unwrap_getgridcolor,unwrap_setgridcolor,
00404         unwrap_getgridstr,unwrap_setgridstr,
00405 
00406         unwrap_getautomap,unwrap_setautomap,
00407 //flatten defaults
00408         unwrap_getflattenangle,unwrap_setflattenangle,
00409         unwrap_getflattenspacing,unwrap_setflattenspacing,
00410         unwrap_getflattennormalize,unwrap_setflattennormalize,
00411         unwrap_getflattenrotate,unwrap_setflattenrotate,
00412         unwrap_getflattenfillholes,unwrap_setflattenfillholes,
00413 
00414         unwrap_getpreventflattening,unwrap_setpreventflattening,
00415 
00416         unwrap_getenablesoftselection,unwrap_setenablesoftselection,
00417         unwrap_getapplytowholeobject,unwrap_setapplytowholeobject,
00418 
00419         unwrap_setvertexposition2,
00420         unwrap_relax,
00421         unwrap_fitrelax,
00422 //5.1.05
00423         unwrap_getautobackground,unwrap_setautobackground,
00424 
00425 //5.1.06
00426         unwrap_relax2, unwrap_relax2dialog,
00427         unwrap_setrelaxamount,unwrap_getrelaxamount,
00428         unwrap_setrelaxiter,unwrap_getrelaxiter,
00429 
00430         unwrap_setrelaxboundary,unwrap_getrelaxboundary,
00431         unwrap_setrelaxsaddle,unwrap_getrelaxsaddle,
00432 
00433         unwrap_setthickopenedges,unwrap_getthickopenedges,
00434         unwrap_setviewportopenedges,unwrap_getviewportopenedges,
00435 
00436         unwrap_selectinvertedfaces,
00437         unwrap_getrelativetypein,unwrap_setrelativetypein,
00438 
00439         unwrap_stitchverts2,
00440 
00441         unwrap_addmap,
00442 
00443         unwrap_flattenmapbymatid,
00444 
00445         unwrap_getarea,
00446         unwrap_getrotationsrespectaspect,
00447         unwrap_setrotationsrespectaspect,
00448 
00449         unwrap_setmax5flatten,
00450 
00451         };
00452 //****************************************************************
00453 
00454 
00465 class IUnwrapMod :  public Modifier, public FPMixinInterface 
00466     {
00467     public:
00468 
00469         //Function Publishing System
00470         //Function Map For Mixin Interface
00471         //*************************************************
00472         BEGIN_FUNCTION_MAP
00473             VFN_0(unwrap_planarmap, fnPlanarMap);
00474             VFN_0(unwrap_save, fnSave);
00475             VFN_0(unwrap_load, fnLoad);
00476             VFN_0(unwrap_reset, fnReset);
00477             VFN_0(unwrap_edit, fnEdit);
00478             VFN_1(unwrap_setMapChannel, fnSetMapChannel,TYPE_INT);
00479             FN_0(unwrap_getMapChannel, TYPE_INT, fnGetMapChannel);
00480             VFN_1(unwrap_setProjectionType, fnSetProjectionType,TYPE_INT);
00481             FN_0(unwrap_getProjectionType, TYPE_INT, fnGetProjectionType);
00482             VFN_1(unwrap_setVC, fnSetVC,TYPE_BOOL);
00483             FN_0(unwrap_getVC, TYPE_BOOL, fnGetVC);
00484 
00485             VFN_0(unwrap_move, fnMove);
00486             VFN_0(unwrap_moveh, fnMoveH);
00487             VFN_0(unwrap_movev, fnMoveV);
00488 
00489             VFN_0(unwrap_rotate, fnRotate);
00490 
00491             VFN_0(unwrap_scale, fnScale);
00492             VFN_0(unwrap_scaleh, fnScaleH);
00493             VFN_0(unwrap_scalev, fnScaleV);
00494 
00495             VFN_0(unwrap_mirrorh, fnMirrorH);
00496             VFN_0(unwrap_mirrorv, fnMirrorV);
00497             VFN_0(unwrap_expandsel, fnExpandSelection);
00498             VFN_0(unwrap_contractsel, fnContractSelection);
00499             VFN_1(unwrap_setFalloffType, fnSetFalloffType,TYPE_INT);
00500             FN_0(unwrap_getFalloffType, TYPE_INT, fnGetFalloffType);
00501             VFN_1(unwrap_setFalloffSpace, fnSetFalloffSpace,TYPE_INT);
00502             FN_0(unwrap_getFalloffSpace, TYPE_INT, fnGetFalloffSpace);
00503             VFN_1(unwrap_setFalloffDist, fnSetFalloffDist,TYPE_FLOAT);
00504             FN_0(unwrap_getFalloffDist, TYPE_FLOAT, fnGetFalloffDist);
00505             VFN_0(unwrap_breakselected, fnBreakSelected);
00506             VFN_0(unwrap_weld, fnWeld);
00507             VFN_0(unwrap_weldselected, fnWeldSelected);
00508             VFN_0(unwrap_updatemap, fnUpdatemap);
00509             VFN_1(unwrap_displaymap, fnDisplaymap, TYPE_BOOL);
00510             FN_0(unwrap_ismapdisplayed, TYPE_BOOL, fnIsMapDisplayed);
00511             VFN_1(unwrap_setuvspace, fnSetUVSpace,TYPE_INT);
00512             FN_0(unwrap_getuvspace, TYPE_INT, fnGetUVSpace);
00513             VFN_0(unwrap_options, fnOptions);
00514             VFN_0(unwrap_lock, fnLock);
00515             VFN_0(unwrap_hide, fnHide);
00516             VFN_0(unwrap_unhide, fnUnhide);
00517             VFN_0(unwrap_freeze, fnFreeze);
00518             VFN_0(unwrap_thaw, fnThaw);
00519             VFN_0(unwrap_filterselected, fnFilterSelected);
00520 
00521             VFN_0(unwrap_pan, fnPan);
00522             VFN_0(unwrap_zoom, fnZoom);
00523             VFN_0(unwrap_zoomregion, fnZoomRegion);
00524             VFN_0(unwrap_fit, fnFit);
00525             VFN_0(unwrap_fitselected, fnFitSelected);
00526 
00527             VFN_0(unwrap_snap, fnSnap);
00528 
00529             FN_0(unwrap_getcurrentmap,TYPE_INT, fnGetCurrentMap);
00530             VFN_1(unwrap_setcurrentmap, fnSetCurrentMap,TYPE_INT);
00531             FN_0(unwrap_numbermaps,TYPE_INT, fnNumberMaps);
00532 
00533             FN_0(unwrap_getlinecolor,TYPE_POINT3, fnGetLineColor);
00534             VFN_1(unwrap_setlinecolor, fnSetLineColor,TYPE_POINT3);
00535             FN_0(unwrap_getselectioncolor,TYPE_POINT3, fnGetSelColor);
00536             VFN_1(unwrap_setselectioncolor, fnSetSelColor,TYPE_POINT3);
00537 
00538             FN_0(unwrap_getrenderwidth,TYPE_INT, fnGetRenderWidth);
00539             VFN_1(unwrap_setrenderwidth, fnSetRenderWidth,TYPE_INT);
00540             FN_0(unwrap_getrenderheight,TYPE_INT, fnGetRenderHeight);
00541             VFN_1(unwrap_setrenderheight, fnSetRenderHeight,TYPE_INT);
00542 
00543             FN_0(unwrap_getusebitmapres,TYPE_BOOL, fnGetUseBitmapRes);
00544             VFN_1(unwrap_setusebitmapres, fnSetUseBitmapRes,TYPE_BOOL);
00545 
00546             FN_0(unwrap_getweldtheshold,TYPE_FLOAT, fnGetWeldThresold);
00547             VFN_1(unwrap_setweldtheshold, fnSetWeldThreshold,TYPE_FLOAT);
00548 
00549 
00550             FN_0(unwrap_getconstantupdate,TYPE_BOOL, fnGetConstantUpdate);
00551             VFN_1(unwrap_setconstantupdate, fnSetConstantUpdate,TYPE_BOOL);
00552 
00553             FN_0(unwrap_getshowselectedvertices,TYPE_BOOL, fnGetShowSelectedVertices);
00554             VFN_1(unwrap_setshowselectedvertices, fnSetShowSelectedVertices,TYPE_BOOL);
00555 
00556             FN_0(unwrap_getmidpixelsnap,TYPE_BOOL, fnGetMidPixelSnape);
00557             VFN_1(unwrap_setmidpixelsnap, fnSetMidPixelSnape,TYPE_BOOL);
00558 
00559 
00560             FN_0(unwrap_getmatid,TYPE_INT, fnGetMatID);
00561             VFN_1(unwrap_setmatid, fnSetMatID,TYPE_INT);
00562             FN_0(unwrap_numbermatids,TYPE_INT, fnNumberMatIDs);
00563 
00564             FN_0(unwrap_getselectedverts,TYPE_BITARRAY, fnGetSelectedVerts);
00565             VFN_1(unwrap_selectverts, fnSelectVerts,TYPE_BITARRAY);
00566             FN_1(unwrap_isvertexselected,TYPE_BOOL, fnIsVertexSelected,TYPE_INT);
00567 
00568             VFN_1(unwrap_moveselectedvertices, fnMoveSelectedVertices,TYPE_POINT3);
00569             VFN_1(unwrap_rotateselectedverticesc, fnRotateSelectedVertices,TYPE_FLOAT);
00570             VFN_2(unwrap_rotateselectedvertices, fnRotateSelectedVertices,TYPE_FLOAT, TYPE_POINT3);
00571             VFN_2(unwrap_scaleselectedverticesc, fnScaleSelectedVertices,TYPE_FLOAT, TYPE_INT);
00572             VFN_3(unwrap_scaleselectedvertices, fnScaleSelectedVertices,TYPE_FLOAT, TYPE_INT,TYPE_POINT3);
00573 
00574             FN_2(unwrap_getvertexposition,TYPE_POINT3, fnGetVertexPosition, TYPE_TIMEVALUE, TYPE_INT);
00575             FN_0(unwrap_numbervertices,TYPE_INT, fnNumberVertices);
00576 
00577             VFN_1(unwrap_movex, fnMoveX,TYPE_FLOAT);
00578             VFN_1(unwrap_movey, fnMoveY,TYPE_FLOAT);
00579             VFN_1(unwrap_movez, fnMoveZ,TYPE_FLOAT);
00580 
00581             FN_0(unwrap_getselectedpolygons,TYPE_BITARRAY, fnGetSelectedPolygons);
00582             VFN_1(unwrap_selectpolygons, fnSelectPolygons,TYPE_BITARRAY);
00583             FN_1(unwrap_ispolygonselected,TYPE_BOOL, fnIsPolygonSelected,TYPE_INT);
00584             FN_0(unwrap_numberpolygons,TYPE_INT, fnNumberPolygons);
00585             VFN_0(unwrap_detachedgeverts, fnDetachEdgeVerts);
00586             VFN_0(unwrap_fliph, fnFlipH);
00587             VFN_0(unwrap_flipv, fnFlipV);
00588             
00589             VFN_1(unwrap_setlockaspect, fnSetLockAspect,TYPE_BOOL);
00590             FN_0(unwrap_getlockaspect,TYPE_BOOL, fnGetLockAspect);
00591 
00592             VFN_1(unwrap_setmapscale, fnSetMapScale,TYPE_FLOAT);
00593             FN_0(unwrap_getmapscale,TYPE_FLOAT, fnGetMapScale);
00594 
00595             VFN_0(unwrap_getselectionfromface, fnGetSelectionFromFace);
00596 
00597             VFN_1(unwrap_forceupdate, fnForceUpdate,TYPE_BOOL);
00598 
00599             VFN_1(unwrap_zoomtogizmo, fnZoomToGizmo,TYPE_BOOL);
00600 
00601             VFN_3(unwrap_setvertexposition, fnSetVertexPosition,TYPE_TIMEVALUE,TYPE_INT,TYPE_POINT3);
00602             VFN_1(unwrap_markasdead, fnMarkAsDead,TYPE_INT);
00603 
00604             FN_1(unwrap_numberpointsinface,TYPE_INT,fnNumberPointsInFace,TYPE_INT);
00605             FN_2(unwrap_getvertexindexfromface,TYPE_INT,fnGetVertexIndexFromFace,TYPE_INT,TYPE_INT);
00606             FN_2(unwrap_gethandleindexfromface,TYPE_INT,fnGetHandleIndexFromFace,TYPE_INT,TYPE_INT);
00607             FN_2(unwrap_getinteriorindexfromface,TYPE_INT,fnGetInteriorIndexFromFace,TYPE_INT,TYPE_INT);
00608             FN_2(unwrap_getvertexgindexfromface,TYPE_INT,fnGetVertexGIndexFromFace,TYPE_INT,TYPE_INT);
00609             FN_2(unwrap_gethandlegindexfromface,TYPE_INT,fnGetHandleGIndexFromFace,TYPE_INT,TYPE_INT);
00610             FN_2(unwrap_getinteriorgindexfromface,TYPE_INT,fnGetInteriorGIndexFromFace,TYPE_INT,TYPE_INT);
00611             
00612             VFN_4(unwrap_addpointtoface,fnAddPoint,TYPE_POINT3,TYPE_INT,TYPE_INT,TYPE_BOOL);
00613             VFN_4(unwrap_addpointtohandle,fnAddHandle,TYPE_POINT3,TYPE_INT,TYPE_INT,TYPE_BOOL);
00614             VFN_4(unwrap_addpointtointerior,fnAddInterior,TYPE_POINT3,TYPE_INT,TYPE_INT,TYPE_BOOL);
00615 
00616             VFN_3(unwrap_setfacevertexindex,fnSetFaceVertexIndex,TYPE_INT,TYPE_INT,TYPE_INT);
00617             VFN_3(unwrap_setfacehandleindex,fnSetFaceHandleIndex,TYPE_INT,TYPE_INT,TYPE_INT);
00618             VFN_3(unwrap_setfaceinteriorindex,fnSetFaceInteriorIndex,TYPE_INT,TYPE_INT,TYPE_INT);
00619 
00620             VFN_0(unwrap_updateview,fnUpdateViews);
00621 
00622             VFN_0(unwrap_getfaceselfromstack,fnGetFaceSelFromStack);
00623             
00624 
00625 
00626         END_FUNCTION_MAP
00627 
00628         FPInterfaceDesc* GetDesc();    // <-- must implement 
00629 
00632         virtual void    fnPlanarMap()=0;
00635         virtual void    fnSave()=0;
00638         virtual void    fnLoad()=0;
00641         virtual void    fnReset()=0;
00644         virtual void    fnEdit()=0;
00645 
00651         virtual void    fnSetMapChannel(int channel)=0;
00654         virtual int     fnGetMapChannel()=0;
00655 
00662         virtual void    fnSetProjectionType(int proj)=0;
00665         virtual int     fnGetProjectionType()=0;
00666 
00673         virtual void    fnSetVC(BOOL vc)=0;
00676         virtual BOOL    fnGetVC()=0;
00677 
00680         virtual void    fnMove()=0;
00683         virtual void    fnMoveH()=0;
00686         virtual void    fnMoveV()=0;
00687 
00690         virtual void    fnRotate()=0;
00691 
00694         virtual void    fnScale()=0;
00697         virtual void    fnScaleH()=0;
00700         virtual void    fnScaleV()=0;
00701 
00704         virtual void    fnMirrorH()=0;
00707         virtual void    fnMirrorV()=0;
00708 
00711         virtual void    fnExpandSelection()=0;
00714         virtual void    fnContractSelection()=0;
00715         
00716 
00722         virtual void    fnSetFalloffType(int falloff)=0;
00725         virtual int     fnGetFalloffType()=0;
00732         virtual void    fnSetFalloffSpace(int space)=0;
00735         virtual int     fnGetFalloffSpace()=0;
00741         virtual void    fnSetFalloffDist(float dist)=0;
00743         virtual float   fnGetFalloffDist()=0;
00744 
00747         virtual void    fnBreakSelected()=0;
00750         virtual void    fnWeld()=0;
00753         virtual void    fnWeldSelected()=0;
00754 
00757         virtual void    fnUpdatemap()=0;
00763         virtual void    fnDisplaymap(BOOL update)=0;
00766         virtual BOOL    fnIsMapDisplayed()=0;
00767 
00773         virtual void    fnSetUVSpace(int space)=0;
00776         virtual int     fnGetUVSpace()=0;
00779         virtual void    fnOptions()=0;
00780 
00783         virtual void    fnLock()=0;
00786         virtual void    fnHide()=0;
00789         virtual void    fnUnhide()=0;
00790 
00793         virtual void    fnFreeze()=0;
00796         virtual void    fnThaw()=0;
00799         virtual void    fnFilterSelected()=0;
00800 
00803         virtual void    fnPan()=0;
00806         virtual void    fnZoom()=0;
00809         virtual void    fnZoomRegion()=0;
00812         virtual void    fnFit()=0;
00815         virtual void    fnFitSelected()=0;
00816 
00819         virtual void    fnSnap()=0;
00820 
00821 
00824         virtual int     fnGetCurrentMap()=0;
00830         virtual void    fnSetCurrentMap(int map)=0;
00833         virtual int     fnNumberMaps()=0;
00834 
00837         virtual Point3* fnGetLineColor()=0;
00842         virtual void    fnSetLineColor(Point3 color)=0;
00843 
00846         virtual Point3* fnGetSelColor()=0;
00851         virtual void    fnSetSelColor(Point3 color)=0;
00852 
00853 
00854 
00860         virtual void    fnSetRenderWidth(int dist)=0;
00864         virtual int     fnGetRenderWidth()=0;
00870         virtual void    fnSetRenderHeight(int dist)=0;
00874         virtual int     fnGetRenderHeight()=0;
00875         
00881         virtual void    fnSetWeldThreshold(float dist)=0;
00883         virtual float   fnGetWeldThresold()=0;
00884 
00891         virtual void    fnSetUseBitmapRes(BOOL useBitmapRes)=0;
00895         virtual BOOL    fnGetUseBitmapRes()=0;
00896 
00897         
00901         virtual BOOL    fnGetConstantUpdate()=0;
00908         virtual void    fnSetConstantUpdate(BOOL constantUpdates)=0;
00909 
00912         virtual BOOL    fnGetShowSelectedVertices()=0;
00918         virtual void    fnSetShowSelectedVertices(BOOL show)=0;
00919 
00923         virtual BOOL    fnGetMidPixelSnape()=0;
00930         virtual void    fnSetMidPixelSnape(BOOL midPixel)=0;
00931 
00934         virtual int     fnGetMatID()=0;
00940         virtual void    fnSetMatID(int matid)=0;
00943         virtual int     fnNumberMatIDs()=0;
00944 
00947         virtual BitArray* fnGetSelectedVerts()=0;
00953         virtual void fnSelectVerts(BitArray *sel)=0;
00958         virtual BOOL fnIsVertexSelected(int index)=0;
00959 
00965         virtual void fnMoveSelectedVertices(Point3 offset)=0;
00971         virtual void fnRotateSelectedVertices(float angle)=0;
00980         virtual void fnRotateSelectedVertices(float angle, Point3 axis)=0;
00988         virtual void fnScaleSelectedVertices(float scale,int dir)=0;
00999         virtual void fnScaleSelectedVertices(float scale,int dir,Point3 axis)=0;
01006         virtual Point3* fnGetVertexPosition(TimeValue t,  int index)=0;
01008         virtual int fnNumberVertices()=0;
01009 
01016         virtual void fnMoveX(float p)=0;
01022         virtual void fnMoveY(float p)=0;
01028         virtual void fnMoveZ(float p)=0;
01029 
01032         virtual BitArray* fnGetSelectedPolygons()=0;
01037         virtual void fnSelectPolygons(BitArray *sel)=0;
01043         virtual BOOL fnIsPolygonSelected(int index)=0;
01046         virtual int fnNumberPolygons()=0;
01047 
01052         virtual void fnDetachEdgeVerts()=0;
01053 
01056         virtual void fnFlipH()=0;
01059         virtual void fnFlipV()=0;
01060 
01065         virtual BOOL    fnGetLockAspect()=0;
01070         virtual void    fnSetLockAspect(BOOL a)=0;
01071 
01075         virtual float   fnGetMapScale()=0;
01081         virtual void    fnSetMapScale(float sc)=0;
01082 
01085         virtual void    fnGetSelectionFromFace()=0;
01096         virtual void    fnForceUpdate(BOOL update)= 0;
01097 
01104         virtual void    fnZoomToGizmo(BOOL all)= 0;
01105 
01115         virtual void    fnSetVertexPosition(TimeValue t, int index, Point3 pos) = 0;
01126         virtual void    fnMarkAsDead(int index) = 0;
01127 
01137         virtual int     fnNumberPointsInFace(int index)=0;
01150         virtual int     fnGetVertexIndexFromFace(int index,int vertexIndex)=0;
01163         virtual int     fnGetHandleIndexFromFace(int index,int vertexIndex)=0;
01178         virtual int     fnGetInteriorIndexFromFace(int index,int vertexIndex)=0;
01191         virtual int     fnGetVertexGIndexFromFace(int index,int vertexIndex)=0;
01204         virtual int     fnGetHandleGIndexFromFace(int index,int vertexIndex)=0;
01219         virtual int     fnGetInteriorGIndexFromFace(int index,int vertexIndex)=0;
01220 
01236         virtual void    fnAddPoint(Point3 pos, int fIndex,int ithV, BOOL sel)=0;
01248         virtual void    fnAddHandle(Point3 pos, int fIndex,int ithV, BOOL sel)=0;
01260         virtual void    fnAddInterior(Point3 pos, int fIndex,int ithV, BOOL sel)=0;
01261 
01271         virtual void    fnSetFaceVertexIndex(int fIndex,int ithV, int vIndex)=0;
01281         virtual void    fnSetFaceHandleIndex(int fIndex,int ithV, int vIndex)=0;
01292         virtual void    fnSetFaceInteriorIndex(int fIndex,int ithV, int vIndex)=0;
01293 
01295         virtual void    fnUpdateViews()=0;
01296 
01305         virtual void    fnGetFaceSelFromStack()=0;
01306 
01307 
01308     };
01309 
01852 class IUnwrapMod2 : public FPMixinInterface
01853     {
01854     public:
01855 
01856         //Function Publishing System
01857         //Function Map For Mixin Interface
01858         //*************************************************
01859         BEGIN_FUNCTION_MAP
01860 
01861 //UNFOLD STUFF
01862             VFN_2(unwrap_selectpolygonsupdate, fnSelectPolygonsUpdate,TYPE_BITARRAY, TYPE_BOOL);
01863             VFN_3(unwrap_selectfacesbynormal,fnSelectFacesByNormal,TYPE_POINT3,TYPE_FLOAT, TYPE_BOOL);
01864             VFN_4(unwrap_selectclusterbynormal,fnSelectClusterByNormal,TYPE_FLOAT,TYPE_INT, TYPE_BOOL, TYPE_BOOL);
01865 
01866             VFN_7(unwrap_flattenmap,fnFlattenMap,TYPE_FLOAT,TYPE_POINT3_TAB,TYPE_FLOAT,TYPE_BOOL,TYPE_INT,TYPE_BOOL,TYPE_BOOL);
01867 
01868             VFN_6(unwrap_normalmap,fnNormalMap,TYPE_POINT3_TAB,TYPE_FLOAT,TYPE_BOOL,TYPE_INT,TYPE_BOOL,TYPE_BOOL);
01869             VFN_0(unwrap_normalmapnoparams,fnNormalMapNoParams);
01870             VFN_0(unwrap_normalmapdialog,fnNormalMapDialog);
01871 
01872             VFN_2(unwrap_unfoldmap,fnUnfoldSelectedPolygons,TYPE_INT,TYPE_BOOL);
01873             VFN_0(unwrap_unfoldmapdialog,fnUnfoldSelectedPolygonsDialog);
01874             VFN_0(unwrap_unfoldmapnoparams,fnUnfoldSelectedPolygonsNoParams);
01875             
01876 
01877 
01878             VFN_0(unwrap_hideselectedpolygons,fnHideSelectedPolygons);
01879             VFN_0(unwrap_unhideallpolygons,fnUnhideAllPolygons);
01880 
01881             FN_1(unwrap_getnormal,TYPE_POINT3,fnGetNormal,TYPE_INT);
01882 
01883             VFN_0(unwrap_setseedface,fnSetSeedFace);
01884 
01885             VFN_0(unwrap_showvertexconnectionlist,fnShowVertexConnectionList);
01886 //COPYPASTE STUFF
01887             VFN_0(unwrap_copy,fnCopy);
01888             VFN_1(unwrap_paste,fnPaste,TYPE_BOOL);
01889             VFN_0(unwrap_pasteinstance,fnPasteInstance);
01890 
01891             VFN_1(unwrap_setdebuglevel,fnSetDebugLevel,TYPE_INT);
01892             VFN_2(unwrap_stitchverts,fnStitchVerts,TYPE_BOOL,TYPE_FLOAT);
01893             VFN_0(unwrap_stitchvertsnoparams,fnStitchVertsNoParams);
01894             VFN_0(unwrap_stitchvertsdialog,fnStitchVertsDialog);
01895 
01896             VFN_0(unwrap_selectelement,fnSelectElement);
01897 
01898             VFN_0(unwrap_flattenmapdialog,fnFlattenMapDialog);
01899             VFN_0(unwrap_flattenmapnoparams,fnFlattenMapNoParams);
01900 //TILE STUFF
01901             FN_0(unwrap_gettilemap,TYPE_BOOL, fnGetTile);
01902             VFN_1(unwrap_settilemap,fnSetTile,TYPE_BOOL);
01903 
01904             FN_0(unwrap_gettilemaplimit,TYPE_INT, fnGetTileLimit);
01905             VFN_1(unwrap_settilemaplimit,fnSetTileLimit,TYPE_INT);
01906 
01907             FN_0(unwrap_gettilemapcontrast,TYPE_FLOAT, fnGetTileContrast);
01908             VFN_1(unwrap_settilemapcontrast,fnSetTileContrast,TYPE_FLOAT);
01909 
01910 
01911             FN_0(unwrap_getshowmap,TYPE_BOOL, fnGetShowMap);
01912             VFN_1(unwrap_setshowmap,fnSetShowMap,TYPE_BOOL);
01913 
01914 
01915 //SELECTION STUFF
01916             FN_0(unwrap_setlimitsoftsel,TYPE_BOOL, fnGetLimitSoftSel);
01917             VFN_1(unwrap_getlimitsoftsel,fnSetLimitSoftSel,TYPE_BOOL);
01918 
01919             FN_0(unwrap_setlimitsoftselrange,TYPE_INT, fnGetLimitSoftSelRange);
01920             VFN_1(unwrap_getlimitsoftselrange,fnSetLimitSoftSelRange,TYPE_INT);
01921 
01922             FN_1(unwrap_getvertexweight,TYPE_FLOAT, fnGetVertexWeight,TYPE_INDEX);
01923             VFN_2(unwrap_setvertexweight,fnSetVertexWeight,TYPE_INT,TYPE_FLOAT);
01924         
01925             
01926             FN_1(unwrap_isweightmodified,TYPE_BOOL, fnIsWeightModified,TYPE_INT);
01927             VFN_2(unwrap_modifyweight,fnModifyWeight,TYPE_INT,TYPE_BOOL);
01928 
01929             FN_0(unwrap_getgeom_elemmode,TYPE_BOOL, fnGetGeomElemMode);
01930             VFN_1(unwrap_setgeom_elemmode,fnSetGeomElemMode,TYPE_BOOL);
01931 
01932             FN_0(unwrap_getgeom_planarmode,TYPE_BOOL, fnGetGeomPlanarMode);
01933             VFN_1(unwrap_setgeom_planarmode,fnSetGeomPlanarMode,TYPE_BOOL);
01934 
01935             FN_0(unwrap_getgeom_planarmodethreshold,TYPE_FLOAT, fnGetGeomPlanarModeThreshold);
01936             VFN_1(unwrap_setgeom_planarmodethreshold,fnSetGeomPlanarModeThreshold,TYPE_FLOAT);
01937 
01938             FN_0(unwrap_getwindowx,TYPE_INT, fnGetWindowX);
01939             FN_0(unwrap_getwindowy,TYPE_INT, fnGetWindowY);
01940             FN_0(unwrap_getwindoww,TYPE_INT, fnGetWindowW);
01941             FN_0(unwrap_getwindowh,TYPE_INT, fnGetWindowH);
01942 
01943             FN_0(unwrap_getbackfacecull,TYPE_BOOL, fnGetBackFaceCull);
01944             VFN_1(unwrap_setbackfacecull,fnSetBackFaceCull,TYPE_BOOL);
01945 
01946             FN_0(unwrap_getoldselmethod,TYPE_BOOL, fnGetOldSelMethod);
01947             VFN_1(unwrap_setoldselmethod,fnSetOldSelMethod,TYPE_BOOL);
01948 
01949             VFN_1(unwrap_selectbymatid,fnSelectByMatID,TYPE_INT);
01950             VFN_1(unwrap_selectbysg,fnSelectBySG,TYPE_INT);
01951 
01952             FN_0(unwrap_gettvelementmode,TYPE_BOOL, fnGetTVElementMode);
01953             VFN_1(unwrap_settvelementmode,fnSetTVElementMode,TYPE_BOOL);
01954 
01955             VFN_0(unwrap_geomexpandsel,fnGeomExpandFaceSel);
01956             VFN_0(unwrap_geomcontractsel,fnGeomContractFaceSel);
01957 
01958             FN_0(unwrap_getalwaysedit,TYPE_BOOL, fnGetAlwaysEdit);
01959             VFN_1(unwrap_setalwaysedit,fnSetAlwaysEdit,TYPE_BOOL);
01960 
01961             FN_0(unwrap_getshowvertexconnectionlist,TYPE_BOOL, fnGetShowConnection);
01962             VFN_1(unwrap_setshowvertexconnectionlist,fnSetShowConnection,TYPE_BOOL);
01963 
01964             FN_0(unwrap_getfilterselected,TYPE_BOOL, fnGetFilteredSelected);
01965             VFN_1(unwrap_setfilterselected,fnSetFilteredSelected,TYPE_BOOL);
01966 
01967             FN_0(unwrap_getsnap,TYPE_BOOL, fnGetSnap);
01968             VFN_1(unwrap_setsnap,fnSetSnap,TYPE_BOOL);
01969 
01970             FN_0(unwrap_getlock,TYPE_BOOL, fnGetLock);
01971             VFN_1(unwrap_setlock,fnSetLock,TYPE_BOOL);
01972 
01973             VFN_5(unwrap_pack, fnPack,TYPE_INT, TYPE_FLOAT, TYPE_BOOL,TYPE_BOOL,TYPE_BOOL);
01974             VFN_0(unwrap_packnoparams, fnPackNoParams);
01975             VFN_0(unwrap_packdialog, fnPackDialog);
01976 
01977             FN_0(unwrap_gettvsubobjectmode,TYPE_INT, fnGetTVSubMode);
01978             VFN_1(unwrap_settvsubobjectmode,fnSetTVSubMode,TYPE_INT);
01979 
01980             FN_0(unwrap_getselectedfaces,TYPE_BITARRAY, fnGetSelectedFaces);
01981             VFN_1(unwrap_selectfaces, fnSelectFaces,TYPE_BITARRAY);
01982             FN_1(unwrap_isfaceselected,TYPE_BOOL, fnIsFaceSelected,TYPE_INT);
01983 
01984             FN_0(unwrap_getfillmode,TYPE_INT, fnGetFillMode);
01985             VFN_1(unwrap_setfillmode,fnSetFillMode,TYPE_INT);
01986 
01987 
01988             VFN_1(unwrap_moveselected, fnMoveSelected,TYPE_POINT3);
01989             VFN_1(unwrap_rotateselectedc, fnRotateSelected,TYPE_FLOAT);
01990             VFN_2(unwrap_rotateselected, fnRotateSelected,TYPE_FLOAT, TYPE_POINT3);
01991             VFN_2(unwrap_scaleselectedc, fnScaleSelected,TYPE_FLOAT, TYPE_INT);
01992             VFN_3(unwrap_scaleselected, fnScaleSelected,TYPE_FLOAT, TYPE_INT,TYPE_POINT3);
01993 
01994             FN_0(unwrap_getselectededges,TYPE_BITARRAY, fnGetSelectedEdges);
01995             VFN_1(unwrap_selectedges, fnSelectEdges,TYPE_BITARRAY);
01996             FN_1(unwrap_isedgeselected,TYPE_BOOL, fnIsEdgeSelected,TYPE_INT);
01997 
01998 
01999             FN_0(unwrap_getdisplayopenedge,TYPE_BOOL, fnGetDisplayOpenEdges);
02000             VFN_1(unwrap_setdisplayopenedge,fnSetDisplayOpenEdges,TYPE_BOOL);
02001         
02002 
02003             FN_0(unwrap_getopenedgecolor,TYPE_POINT3, fnGetOpenEdgeColor);
02004             VFN_1(unwrap_setopenedgecolor, fnSetOpenEdgeColor,TYPE_POINT3);
02005 
02006             FN_0(unwrap_getuvedgemode,TYPE_BOOL, fnGetUVEdgeMode);
02007             VFN_1(unwrap_setuvedgemode,fnSetUVEdgeMode,TYPE_BOOL);
02008 
02009             FN_0(unwrap_getopenedgemode,TYPE_BOOL, fnGetOpenEdgeMode);
02010             VFN_1(unwrap_setopenedgemode,fnSetOpenEdgeMode,TYPE_BOOL);
02011 
02012             VFN_0(unwrap_uvedgeselect,fnUVEdgeSelect);
02013 
02014             VFN_0(unwrap_openedgeselect,fnOpenEdgeSelect);
02015 
02016             VFN_0(unwrap_selectverttoedge,fnVertToEdgeSelect);
02017             VFN_0(unwrap_selectverttoface,fnVertToFaceSelect);
02018 
02019             VFN_0(unwrap_selectedgetovert,fnEdgeToVertSelect);
02020             VFN_0(unwrap_selectedgetoface,fnEdgeToFaceSelect);
02021 
02022             VFN_0(unwrap_selectfacetovert,fnFaceToVertSelect);
02023             VFN_0(unwrap_selectfacetoedge,fnFaceToEdgeSelect);
02024 
02025             FN_0(unwrap_getdisplayhiddenedge,TYPE_BOOL, fnGetDisplayHiddenEdges);
02026             VFN_1(unwrap_setdisplayhiddenedge,fnSetDisplayHiddenEdges,TYPE_BOOL);
02027 
02028 
02029             FN_0(unwrap_gethandlecolor,TYPE_POINT3, fnGetHandleColor);
02030             VFN_1(unwrap_sethandlecolor, fnSetHandleColor,TYPE_POINT3);
02031 
02032             FN_0(unwrap_getfreeformmode,TYPE_BOOL, fnGetFreeFormMode);
02033             VFN_1(unwrap_setfreeformmode,fnSetFreeFormMode,TYPE_BOOL);
02034 
02035             FN_0(unwrap_getfreeformcolor,TYPE_POINT3, fnGetFreeFormColor);
02036             VFN_1(unwrap_setfreeformcolor, fnSetFreeFormColor,TYPE_POINT3);
02037 
02038             VFN_3(unwrap_scaleselectedxy, fnScaleSelectedXY,TYPE_FLOAT, TYPE_FLOAT,TYPE_POINT3);
02039 
02040             VFN_1(unwrap_snappivot, fnSnapPivot,TYPE_INT);
02041             FN_0(unwrap_getpivotoffset,TYPE_POINT3, fnGetPivotOffset);
02042             VFN_1(unwrap_setpivotoffset, fnSetPivotOffset,TYPE_POINT3);     
02043             FN_0(unwrap_getselcenter,TYPE_POINT3, fnGetSelCenter);
02044 
02045             VFN_2(unwrap_sketch, fnSketch,TYPE_INT_TAB,TYPE_POINT3_TAB);
02046             VFN_0(unwrap_sketchnoparams, fnSketchNoParams);
02047             VFN_0(unwrap_sketchdialog, fnSketchDialog);
02048             VFN_0(unwrap_sketchreverse, fnSketchReverse);
02049  
02050             FN_0(unwrap_gethitsize,TYPE_INT, fnGetHitSize);
02051             VFN_1(unwrap_sethitsize, fnSetHitSize,TYPE_INT);
02052 
02053             FN_0(unwrap_getresetpivotonsel,TYPE_BOOL, fnGetResetPivotOnSel);
02054             VFN_1(unwrap_setresetpivotonsel, fnSetResetPivotOnSel,TYPE_BOOL);
02055 
02056             FN_0(unwrap_getpolymode,TYPE_BOOL, fnGetPolyMode);
02057             VFN_1(unwrap_setpolymode, fnSetPolyMode,TYPE_BOOL);
02058             VFN_0(unwrap_polyselect, fnPolySelect);
02059 
02060 
02061             FN_0(unwrap_getselectioninsidegizmo,TYPE_BOOL, fnGetAllowSelectionInsideGizmo);
02062             VFN_1(unwrap_setselectioninsidegizmo, fnSetAllowSelectionInsideGizmo,TYPE_BOOL);
02063 
02064             VFN_0(unwrap_setasdefaults, fnSetAsDefaults);
02065             VFN_0(unwrap_loaddefaults, fnLoadDefaults);
02066 
02067 
02068             
02069             FN_0(unwrap_getshowshared,TYPE_BOOL, fnGetShowShared);
02070             VFN_1(unwrap_setshowshared, fnSetShowShared,TYPE_BOOL);
02071             FN_0(unwrap_getsharedcolor,TYPE_POINT3, fnGetSharedColor);
02072             VFN_1(unwrap_setsharedcolor, fnSetSharedColor,TYPE_POINT3);
02073 
02074             VFN_2(unwrap_showicon, fnShowIcon,TYPE_INT,TYPE_BOOL);
02075 
02076 
02077             FN_0(unwrap_getsyncselectionmode,TYPE_BOOL, fnGetSyncSelectionMode);
02078             VFN_1(unwrap_setsyncselectionmode, fnSetSyncSelectionMode,TYPE_BOOL);
02079 
02080             VFN_0(unwrap_synctvselection, fnSyncTVSelection);
02081             VFN_0(unwrap_syncgeomselection, fnSyncGeomSelection);
02082 
02083             FN_0(unwrap_getbackgroundcolor,TYPE_POINT3, fnGetBackgroundColor);
02084             VFN_1(unwrap_setbackgroundcolor, fnSetBackgroundColor,TYPE_POINT3);
02085 
02086             VFN_0(unwrap_updatemenubar, fnUpdateMenuBar);
02087 
02088 
02089             FN_0(unwrap_getbrightcentertile,TYPE_BOOL, fnGetBrightCenterTile);
02090             VFN_1(unwrap_setbrightcentertile, fnSetBrightCenterTile,TYPE_BOOL);
02091 
02092             FN_0(unwrap_getblendtoback,TYPE_BOOL, fnGetBlendToBack);
02093             VFN_1(unwrap_setblendtoback, fnSetBlendToBack,TYPE_BOOL);
02094 
02095             FN_0(unwrap_getpaintmode,TYPE_BOOL, fnGetPaintMode);
02096             VFN_1(unwrap_setpaintmode, fnSetPaintMode,TYPE_BOOL);
02097 
02098             FN_0(unwrap_getpaintsize,TYPE_INT, fnGetPaintSize);
02099             VFN_1(unwrap_setpaintsize, fnSetPaintSize,TYPE_INT);
02100 
02101             VFN_0(unwrap_incpaintsize, fnIncPaintSize);
02102             VFN_0(unwrap_decpaintsize, fnDecPaintSize);
02103 
02104             FN_0(unwrap_getticksize,TYPE_INT, fnGetTickSize);
02105             VFN_1(unwrap_setticksize, fnSetTickSize,TYPE_INT);
02106 
02107 //NEW
02108             FN_0(unwrap_getgridsize,TYPE_FLOAT, fnGetGridSize);
02109             VFN_1(unwrap_setgridsize, fnSetGridSize,TYPE_FLOAT);
02110 
02111             FN_0(unwrap_getgridsnap,TYPE_BOOL, fnGetGridSnap);
02112             VFN_1(unwrap_setgridsnap, fnSetGridSnap,TYPE_BOOL);
02113 
02114             FN_0(unwrap_getgridvisible,TYPE_BOOL, fnGetGridVisible);
02115             VFN_1(unwrap_setgridvisible, fnSetGridVisible,TYPE_BOOL);
02116 
02117             FN_0(unwrap_getgridcolor,TYPE_POINT3, fnGetGridColor);
02118             VFN_1(unwrap_setgridcolor, fnSetGridColor,TYPE_POINT3);
02119 
02120             FN_0(unwrap_getgridstr,TYPE_FLOAT, fnGetGridStr);
02121             VFN_1(unwrap_setgridstr, fnSetGridStr,TYPE_FLOAT);
02122 
02123 
02124             FN_0(unwrap_getautomap,TYPE_BOOL, fnGetAutoMap);
02125             VFN_1(unwrap_setautomap, fnSetAutoMap,TYPE_BOOL);
02126 
02127 //flatten defaults
02128             FN_0(unwrap_getflattenangle,TYPE_FLOAT, fnGetFlattenAngle);
02129             VFN_1(unwrap_setflattenangle, fnSetFlattenAngle,TYPE_ANGLE);
02130 
02131             FN_0(unwrap_getflattenspacing,TYPE_FLOAT, fnGetFlattenSpacing);
02132             VFN_1(unwrap_setflattenspacing, fnSetFlattenSpacing,TYPE_FLOAT);
02133 
02134             FN_0(unwrap_getflattennormalize,TYPE_BOOL, fnGetFlattenNormalize);
02135             VFN_1(unwrap_setflattennormalize, fnSetFlattenNormalize,TYPE_BOOL);
02136 
02137             FN_0(unwrap_getflattenrotate,TYPE_BOOL, fnGetFlattenRotate);
02138             VFN_1(unwrap_setflattenrotate, fnSetFlattenRotate,TYPE_BOOL);
02139 
02140             FN_0(unwrap_getflattenfillholes,TYPE_BOOL, fnGetFlattenFillHoles);
02141             VFN_1(unwrap_setflattenfillholes, fnSetFlattenFillHoles,TYPE_BOOL);
02142 
02143             FN_0(unwrap_getpreventflattening,TYPE_BOOL, fnGetPreventFlattening);
02144             VFN_1(unwrap_setpreventflattening, fnSetPreventFlattening,TYPE_BOOL);           
02145 
02146             FN_0(unwrap_getenablesoftselection,TYPE_BOOL, fnGetEnableSoftSelection);
02147             VFN_1(unwrap_setenablesoftselection, fnSetEnableSoftSelection,TYPE_BOOL);           
02148 
02149             FN_0(unwrap_getapplytowholeobject,TYPE_BOOL, fnGetApplyToWholeObject);
02150             VFN_1(unwrap_setapplytowholeobject, fnSetApplyToWholeObject,TYPE_BOOL);         
02151 
02152             VFN_5(unwrap_setvertexposition2, fnSetVertexPosition2,TYPE_TIMEVALUE,TYPE_INT,TYPE_POINT3,TYPE_BOOL,TYPE_BOOL);
02153 
02154             VFN_4(unwrap_relax, fnRelax,TYPE_INT,TYPE_FLOAT,TYPE_BOOL,TYPE_BOOL);
02155             VFN_2(unwrap_fitrelax, fnFit,TYPE_INT,TYPE_FLOAT);
02156 
02157 
02158         END_FUNCTION_MAP
02159 
02160         FPInterfaceDesc* GetDesc();    // <-- must implement 
02161 
02162 //UNFOLD STUFF
02163         virtual void    fnSelectPolygonsUpdate(BitArray *sel, BOOL update)=0;
02164         virtual void    fnSelectFacesByNormal(Point3 Normal, float angleThreshold, BOOL update)=0;
02165         virtual void    fnSelectClusterByNormal(float angleThreshold, int seedIndex, BOOL relative, BOOL update)=0;
02166 
02167         virtual void    fnFlattenMap(float angleThreshold, Tab<Point3*> *normaList, float spacing, BOOL normalize, int layoutType, BOOL rotateClusters, BOOL alignWidth)=0;
02168 
02169         virtual void    fnNormalMap(Tab<Point3*> *normaList, float spacing, BOOL normalize, int layoutType, BOOL rotateClusters, BOOL alignWidth)=0;
02170         virtual void    fnNormalMapNoParams()=0;
02171         virtual void    fnNormalMapDialog()=0;
02172 
02173         virtual void    fnUnfoldSelectedPolygons(int unfoldMethod,BOOL normalize)=0;
02174         virtual void    fnUnfoldSelectedPolygonsDialog()=0;
02175         virtual void    fnUnfoldSelectedPolygonsNoParams()=0;
02176 
02177         virtual void    fnHideSelectedPolygons()=0;
02178         virtual void    fnUnhideAllPolygons()=0;
02179 
02180         virtual Point3* fnGetNormal(int index)=0;
02181         virtual void    fnSetSeedFace()=0;
02182 
02183 
02184         virtual void    fnShowVertexConnectionList() = 0;
02185 
02186 //COPYPASTE STUFF
02187         virtual void    fnCopy() = 0;
02188         virtual void    fnPaste(BOOL rotate) = 0;
02189         virtual void    fnPasteInstance() = 0;
02190 
02191         virtual void    fnSetDebugLevel(int level) = 0;
02192 
02193         virtual void    fnStitchVerts(BOOL bAlign, float fBias) = 0;
02194         virtual void    fnStitchVertsNoParams() = 0;
02195         virtual void    fnStitchVertsDialog() = 0;
02196         virtual void    fnSelectElement() = 0;
02197 
02198         virtual void    fnFlattenMapDialog() = 0;
02199         virtual void    fnFlattenMapNoParams() = 0;
02200 
02201 //TILE STUFF
02202         virtual BOOL    fnGetTile() = 0;
02203         virtual void    fnSetTile(BOOL tile) = 0;
02204 
02205         virtual int     fnGetTileLimit() = 0;
02206         virtual void    fnSetTileLimit(int lmit) = 0;
02207 
02208         virtual float   fnGetTileContrast() = 0;
02209         virtual void    fnSetTileContrast(float contrast) = 0;
02210 
02211         virtual BOOL    fnGetShowMap() = 0;
02212         virtual void    fnSetShowMap(BOOL smap) = 0;
02213 
02214 
02215         virtual BOOL    fnGetLimitSoftSel() = 0;
02216         virtual void    fnSetLimitSoftSel(BOOL limit) = 0;
02217 
02218         virtual int     fnGetLimitSoftSelRange() = 0;
02219         virtual void    fnSetLimitSoftSelRange(int range) = 0;
02220 
02221         virtual float   fnGetVertexWeight(int index) = 0;
02222         virtual void    fnSetVertexWeight(int index,float weight) = 0;
02223 
02224         virtual BOOL    fnIsWeightModified(int index) = 0;
02225         virtual void    fnModifyWeight(int index, BOOL modified) = 0;
02226 
02227         virtual BOOL    fnGetGeomElemMode() = 0;
02228         virtual void    fnSetGeomElemMode(BOOL elem) = 0;
02229 
02230         virtual BOOL    fnGetGeomPlanarMode() = 0;
02231         virtual void    fnSetGeomPlanarMode(BOOL planar) = 0;
02232 
02233         virtual float   fnGetGeomPlanarModeThreshold() = 0;
02234         virtual void    fnSetGeomPlanarModeThreshold(float threshold) = 0;
02235 
02236         virtual int     fnGetWindowX() = 0;
02237         virtual int     fnGetWindowY() = 0;
02238         virtual int     fnGetWindowW() = 0;
02239         virtual int     fnGetWindowH() = 0;
02240 
02241 
02242         virtual BOOL    fnGetBackFaceCull() = 0;
02243         virtual void    fnSetBackFaceCull(BOOL backFaceCull) = 0;
02244 
02245         virtual BOOL    fnGetOldSelMethod() = 0;
02246         virtual void    fnSetOldSelMethod(BOOL oldSelMethod) = 0;
02247 
02248         virtual void    fnSelectByMatID(int matID) = 0;
02249         virtual void    fnSelectBySG(int sg) = 0;
02250 
02251 
02252 
02253 
02254         virtual BOOL    fnGetTVElementMode() = 0;
02255         virtual void    fnSetTVElementMode(BOOL mode) = 0;
02256 
02257         virtual void    fnGeomExpandFaceSel() = 0;
02258         virtual void    fnGeomContractFaceSel() = 0;
02259 
02260         virtual BOOL    fnGetAlwaysEdit() = 0;
02261         virtual void    fnSetAlwaysEdit(BOOL always) = 0;
02262 
02263         virtual BOOL    fnGetShowConnection() = 0;
02264         virtual void    fnSetShowConnection(BOOL show) = 0;
02265 
02266 
02267         virtual BOOL    fnGetFilteredSelected() = 0;
02268         virtual void    fnSetFilteredSelected(BOOL filter) = 0;
02269 
02270         virtual BOOL    fnGetSnap() = 0;
02271         virtual void    fnSetSnap(BOOL snap) = 0;
02272 
02273         virtual BOOL    fnGetLock() = 0;
02274         virtual void    fnSetLock(BOOL snap) = 0;
02275 
02276         virtual void    fnPack(int method,  float spacing, BOOL normalize, BOOL rotate, BOOL fillHoles) = 0;
02277         virtual void    fnPackNoParams() = 0;
02278         virtual void    fnPackDialog() = 0;
02279 
02280         virtual int     fnGetTVSubMode() = 0;
02281         virtual void    fnSetTVSubMode(int mode) = 0;
02282 
02283         virtual BitArray* fnGetSelectedFaces()=0;
02284         virtual void    fnSelectFaces(BitArray *sel)=0;
02285         virtual BOOL    fnIsFaceSelected(int index)=0;
02286 
02287         virtual int     fnGetFillMode() = 0;
02288         virtual void    fnSetFillMode(int mode) = 0;
02289 
02290         virtual void fnMoveSelected(Point3 offset)=0;
02291         virtual void fnRotateSelected(float angle)=0;
02292         virtual void fnRotateSelected(float angle, Point3 axis)=0;
02293         virtual void fnScaleSelected(float scale,int dir)=0;
02294         virtual void fnScaleSelected(float scale,int dir,Point3 axis)=0;
02295 
02296 
02297         virtual BitArray* fnGetSelectedEdges()=0;
02298         virtual void    fnSelectEdges(BitArray *sel)=0;
02299         virtual BOOL    fnIsEdgeSelected(int index)=0;
02300 
02301 
02302 
02303         virtual BOOL    fnGetDisplayOpenEdges() = 0;
02304         virtual void    fnSetDisplayOpenEdges(BOOL openEdgeDisplay) = 0;
02305         
02306         virtual Point3* fnGetOpenEdgeColor()=0;
02307         virtual void    fnSetOpenEdgeColor(Point3 color)=0;
02308 
02309         virtual BOOL    fnGetUVEdgeMode() = 0;
02310         virtual void    fnSetUVEdgeMode(BOOL uvmode) = 0;
02311 
02312         virtual BOOL    fnGetOpenEdgeMode() = 0;
02313         virtual void    fnSetOpenEdgeMode(BOOL uvmode) = 0;
02314 
02315         virtual void    fnUVEdgeSelect() = 0;
02316         virtual void    fnOpenEdgeSelect() = 0;
02317 
02318         virtual void    fnVertToEdgeSelect() = 0;
02319         virtual void    fnVertToFaceSelect() = 0;
02320 
02321         virtual void    fnEdgeToVertSelect() = 0;
02322         virtual void    fnEdgeToFaceSelect() = 0;
02323 
02324         virtual void    fnFaceToVertSelect() = 0;
02325         virtual void    fnFaceToEdgeSelect() = 0;
02326 
02327 
02328         virtual BOOL    fnGetDisplayHiddenEdges() = 0;
02329         virtual void    fnSetDisplayHiddenEdges(BOOL hiddenEdgeDisplay) = 0;
02330 
02331         virtual Point3* fnGetHandleColor()=0;
02332         virtual void    fnSetHandleColor(Point3 color)=0;
02333 
02334         virtual BOOL    fnGetFreeFormMode() = 0;
02335         virtual void    fnSetFreeFormMode(BOOL freeFormMode) = 0;
02336 
02337         virtual Point3* fnGetFreeFormColor()=0;
02338         virtual void    fnSetFreeFormColor(Point3 color)=0;
02339 
02340         virtual void    fnScaleSelectedXY(float scaleX,float scaleY,Point3 axis)=0;
02341 
02342         virtual void    fnSnapPivot(int pos)=0;
02343         virtual Point3* fnGetPivotOffset()=0;
02344         virtual void    fnSetPivotOffset(Point3 color)=0;
02345         virtual Point3* fnGetSelCenter()=0;
02346         
02347         virtual void    fnSketch(Tab<int> *indexList, Tab<Point3*> *positionList)=0;
02348         virtual void    fnSketchNoParams()=0;
02349         virtual void    fnSketchDialog()=0;
02350         virtual void    fnSketchReverse()=0;
02351 
02352         virtual int     fnGetHitSize()=0;
02353         virtual void    fnSetHitSize(int size)=0;
02354 
02355         virtual BOOL    fnGetResetPivotOnSel()=0;
02356         virtual void    fnSetResetPivotOnSel(BOOL reset)=0;
02357 
02358         virtual BOOL    fnGetPolyMode()=0;
02359         virtual void    fnSetPolyMode(BOOL pmode)=0;
02360         virtual void    fnPolySelect()=0;
02361 
02362 
02363         virtual BOOL    fnGetAllowSelectionInsideGizmo()=0;
02364         virtual void    fnSetAllowSelectionInsideGizmo(BOOL select)=0;
02365 
02366         virtual void    fnSetAsDefaults()=0;
02367         virtual void    fnLoadDefaults()=0;
02368 
02369 
02370         virtual void    fnSetSharedColor(Point3 color)=0;
02371         virtual Point3* fnGetSharedColor()=0;
02372 
02373         virtual BOOL    fnGetShowShared()=0;
02374         virtual void    fnSetShowShared(BOOL select)=0;
02375 
02376         virtual void    fnShowIcon(int icon, BOOL show)=0;
02377 
02378 
02379         virtual BOOL    fnGetSyncSelectionMode()=0;
02380         virtual void    fnSetSyncSelectionMode(BOOL sync)=0;
02381 
02382         virtual void    fnSyncTVSelection()=0;
02383         virtual void    fnSyncGeomSelection()=0;
02384 
02385 
02386         virtual Point3* fnGetBackgroundColor()=0;
02387         virtual void    fnSetBackgroundColor(Point3 color)=0;
02388 
02389         virtual void    fnUpdateMenuBar() = 0;
02390 
02391 
02392         virtual BOOL    fnGetBrightCenterTile()=0;
02393         virtual void    fnSetBrightCenterTile(BOOL bright)=0;
02394 
02395         virtual BOOL    fnGetBlendToBack()=0;
02396         virtual void    fnSetBlendToBack(BOOL blend)=0;
02397 
02398         virtual BOOL    fnGetPaintMode()=0;
02399         virtual void    fnSetPaintMode(BOOL paint)=0;
02400 
02401         virtual int     fnGetPaintSize()=0;
02402         virtual void    fnSetPaintSize(int size)=0;
02403 
02404         virtual void    fnIncPaintSize()=0;
02405         virtual void    fnDecPaintSize()=0;
02406 
02407 
02408         virtual int     fnGetTickSize()=0;
02409         virtual void    fnSetTickSize(int size)=0;
02410 
02411 //new
02412 
02413 
02414         virtual float   fnGetGridSize()=0;
02415         virtual void    fnSetGridSize(float size)=0;
02416 
02417         virtual BOOL    fnGetGridSnap()=0;
02418         virtual void    fnSetGridSnap(BOOL snap)=0;
02419         virtual BOOL    fnGetGridVisible()=0;
02420         virtual void    fnSetGridVisible(BOOL visible)=0;
02421 
02422         virtual Point3* fnGetGridColor()=0;
02423         virtual void    fnSetGridColor(Point3 color)=0;
02424 
02425         virtual float   fnGetGridStr()=0;
02426         virtual void    fnSetGridStr(float size)=0;
02427 
02428 
02429         virtual BOOL    fnGetAutoMap()=0;
02430         virtual void    fnSetAutoMap(BOOL autoMap)=0;
02431 
02432         virtual float   fnGetFlattenAngle()=0;              //Angle is in degrees
02433         virtual void    fnSetFlattenAngle(float angle)=0;   //Angle is in degrees
02434 
02435         virtual float   fnGetFlattenSpacing()=0;
02436         virtual void    fnSetFlattenSpacing(float spacing)=0;
02437 
02438         virtual BOOL    fnGetFlattenNormalize()=0;
02439         virtual void    fnSetFlattenNormalize(BOOL normalize)=0;
02440 
02441         virtual BOOL    fnGetFlattenRotate()=0;
02442         virtual void    fnSetFlattenRotate(BOOL rotate)=0;
02443 
02444         virtual BOOL    fnGetFlattenFillHoles()=0;
02445         virtual void    fnSetFlattenFillHoles(BOOL fillHoles)=0;
02446 
02447         virtual BOOL    fnGetPreventFlattening()=0;
02448         virtual void    fnSetPreventFlattening(BOOL preventFlattening)=0;
02449 
02450         virtual BOOL    fnGetEnableSoftSelection()=0;
02451         virtual void    fnSetEnableSoftSelection(BOOL enable)=0;
02452 
02453         virtual BOOL    fnGetApplyToWholeObject() = 0;
02454         virtual void    fnSetApplyToWholeObject(BOOL wholeObject) = 0;
02455 
02456         virtual void    fnSetVertexPosition2(TimeValue t, int index, Point3 pos, BOOL hold, BOOL update) = 0;
02457         virtual void    fnRelax(int iteration, float str, BOOL lockEdges, BOOL matchArea) = 0;
02458         virtual void    fnFit(int iteration, float str) = 0;
02459 
02460 
02461     };
02462 
02463 //5.1.05
02464 
02475 class IUnwrapMod3 : public FPMixinInterface  //interface for R6
02476     {
02477     public:
02478 
02479         //Function Publishing System
02480         //Function Map For Mixin Interface
02481         //*************************************************
02482         BEGIN_FUNCTION_MAP
02483 
02484 //TILE STUFF
02485             FN_0(unwrap_getautobackground,TYPE_BOOL, fnGetAutoBackground);
02486             VFN_1(unwrap_setautobackground,fnSetAutoBackground,TYPE_BOOL);
02487 
02488 //RELAX
02489 //5.1.06
02490             FN_0(unwrap_getrelaxamount,TYPE_FLOAT, fnGetRelaxAmount);
02491             VFN_1(unwrap_setrelaxamount, fnSetRelaxAmount,TYPE_FLOAT);          
02492 
02493             FN_0(unwrap_getrelaxiter,TYPE_INT, fnGetRelaxIter);
02494             VFN_1(unwrap_setrelaxiter, fnSetRelaxIter,TYPE_INT);            
02495 
02496             FN_0(unwrap_getrelaxboundary,TYPE_BOOL, fnGetRelaxBoundary);
02497             VFN_1(unwrap_setrelaxboundary, fnSetRelaxBoundary,TYPE_BOOL);           
02498 
02499             FN_0(unwrap_getrelaxsaddle,TYPE_BOOL, fnGetRelaxSaddle);
02500             VFN_1(unwrap_setrelaxsaddle, fnSetRelaxSaddle,TYPE_BOOL);           
02501 
02502             VFN_0(unwrap_relax2, fnRelax2);         
02503             VFN_0(unwrap_relax2dialog, fnRelax2Dialog);         
02504 
02505         END_FUNCTION_MAP
02506 
02507         FPInterfaceDesc* GetDesc();    // <-- must implement 
02508 
02509 //auto background
02510         virtual BOOL    fnGetAutoBackground()=0;
02511         virtual void    fnSetAutoBackground(BOOL autoBackground)=0;
02512 
02513 //5.1.06
02514 
02515         virtual float   fnGetRelaxAmount() = 0;
02516         virtual void    fnSetRelaxAmount(float amount) = 0;
02517 
02518         virtual int     fnGetRelaxIter() = 0;
02519         virtual void    fnSetRelaxIter(int iter) = 0;
02520 
02521         virtual BOOL    fnGetRelaxBoundary() = 0;
02522         virtual void    fnSetRelaxBoundary(BOOL boundary) = 0;
02523 
02524         virtual BOOL    fnGetRelaxSaddle() = 0;
02525         virtual void    fnSetRelaxSaddle(BOOL saddle) = 0;
02526 
02527         virtual void    fnRelax2()=0;
02528         virtual void    fnRelax2Dialog()=0;
02529     };
02530 
02531 
02532 class IUnwrapMod4 : public FPMixinInterface  //interface for R7
02533     {
02534     public:
02535 
02536         //Function Publishing System
02537         //Function Map For Mixin Interface
02538         //*************************************************
02539         BEGIN_FUNCTION_MAP
02540 
02541 //new display edges in viewport
02542             FN_0(unwrap_getthickopenedges,TYPE_BOOL, fnGetThickOpenEdges);
02543             VFN_1(unwrap_setthickopenedges,fnSetThickOpenEdges,TYPE_BOOL);
02544 
02545             FN_0(unwrap_getviewportopenedges,TYPE_BOOL, fnGetViewportOpenEdges);
02546             VFN_1(unwrap_setviewportopenedges,fnSetViewportOpenEdges,TYPE_BOOL);
02547 
02548             VFN_0(unwrap_selectinvertedfaces,fnSelectInvertedFaces);
02549 
02550             FN_0(unwrap_getrelativetypein,TYPE_BOOL,fnGetRelativeTypeInMode);
02551             VFN_1(unwrap_setrelativetypein,fnSetRelativeTypeInMode,TYPE_BOOL);
02552 
02553             VFN_3(unwrap_stitchverts2,fnStitchVerts2,TYPE_BOOL,TYPE_FLOAT,TYPE_BOOL);
02554             
02555             VFN_1(unwrap_addmap,fnAddMap,TYPE_TEXMAP);
02556 
02557 
02558             VFN_6(unwrap_flattenmapbymatid,fnFlattenMapByMatID,TYPE_FLOAT,TYPE_FLOAT,TYPE_BOOL,TYPE_INT,TYPE_BOOL,TYPE_BOOL);
02559 
02560 
02561             VFN_7(unwrap_getarea,fnGetArea, TYPE_BITARRAY, 
02562                             TYPE_FLOAT_BR,TYPE_FLOAT_BR,
02563                             TYPE_FLOAT_BR,TYPE_FLOAT_BR,    
02564                             TYPE_FLOAT_BR,TYPE_FLOAT_BR);
02565 
02566                 
02567 
02568             FN_0(unwrap_getrotationsrespectaspect,TYPE_BOOL, fnGetRotationsRespectAspect);
02569             VFN_1(unwrap_setrotationsrespectaspect,fnSetRotationsRespectAspect,TYPE_BOOL);
02570 
02571             VFN_1(unwrap_setmax5flatten,fnSetMax5Flatten,TYPE_BOOL);
02572 
02573 
02574         END_FUNCTION_MAP
02575 
02576         FPInterfaceDesc* GetDesc();    // <-- must implement 
02577 
02578 
02581         virtual BOOL    fnGetThickOpenEdges()=0;
02584         virtual void    fnSetThickOpenEdges(BOOL thick)=0;
02585 
02586         virtual BOOL    fnGetViewportOpenEdges()=0;
02587         virtual void    fnSetViewportOpenEdges(BOOL thick)=0;
02589         virtual void    fnSelectInvertedFaces()=0;
02590 
02593         virtual BOOL    fnGetRelativeTypeInMode() = 0;
02596         virtual void    fnSetRelativeTypeInMode(BOOL absolute) = 0;
02597 
02599         virtual void    fnStitchVerts2(BOOL bAlign, float fBias, BOOL bScale) = 0;
02600 
02602         virtual void    fnAddMap(Texmap *map) = 0;
02603 
02605         virtual void    fnFlattenMapByMatID(float angleThreshold, float spacing, BOOL normalize, int layoutType, BOOL rotateClusters, BOOL alignWidth)=0;
02607         virtual void    fnGetArea(BitArray *faceSelection, 
02608                                   float &x, float &y,
02609                                   float &width, float &height,
02610                                   float &uvArea, float &geomArea) = 0;
02611 
02614         virtual BOOL    fnGetRotationsRespectAspect()=0;
02617         virtual void    fnSetRotationsRespectAspect(BOOL respect)=0;
02618 
02621         virtual void    fnSetMax5Flatten(BOOL like5)=0;
02622 
02623 
02624 
02625     };
02626 
02627 
02628