2012-05-29 13:31:11 +00:00
|
|
|
#include "stdafx.h"
|
|
|
|
#include "nel_patch_paint.h"
|
|
|
|
#include "../nel_patch_lib/vertex_neighborhood.h"
|
|
|
|
|
|
|
|
// in mods.cpp
|
|
|
|
extern HINSTANCE hInstance;
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------*/
|
|
|
|
|
|
|
|
static EditPatchClassDesc editPatchDesc;
|
|
|
|
extern ClassDesc* GetEditPatchModDesc() { return &editPatchDesc; }
|
|
|
|
|
|
|
|
void EditPatchClassDesc::ResetClassParams(BOOL fileReset)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------*/
|
|
|
|
|
|
|
|
int PaintPatchMod::Display(TimeValue t, INode* inode, ViewExp *vpt, int flags, ModContext *mc)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
void PaintPatchMod::GetWorldBoundBox(TimeValue t, INode* inode, ViewExp *vpt, Box3& box, ModContext *mc)
|
|
|
|
{
|
|
|
|
box.Init();
|
|
|
|
}
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------
|
|
|
|
// UI stuff
|
|
|
|
|
|
|
|
class EPModContextEnumProc : public ModContextEnumProc
|
|
|
|
{
|
|
|
|
float f;
|
|
|
|
public:
|
|
|
|
EPModContextEnumProc(float f) { this->f = f; }
|
|
|
|
BOOL proc(ModContext *mc); // Return FALSE to stop, TRUE to continue.
|
|
|
|
};
|
|
|
|
|
|
|
|
BOOL EPModContextEnumProc::proc(ModContext *mc)
|
|
|
|
{
|
|
|
|
PaintPatchData *patchData =(PaintPatchData*)mc->localData;
|
|
|
|
if (patchData)
|
|
|
|
patchData->RescaleWorldUnits(f);
|
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
|
|
|
|
// World scaling
|
|
|
|
void PaintPatchMod::RescaleWorldUnits(float f)
|
|
|
|
{
|
|
|
|
if (TestAFlag(A_WORK1))
|
|
|
|
return;
|
|
|
|
SetAFlag(A_WORK1);
|
|
|
|
|
|
|
|
// rescale all our references
|
|
|
|
for (int i = 0; i < NumRefs(); i++)
|
|
|
|
{
|
|
|
|
ReferenceMaker *srm = GetReference(i);
|
|
|
|
if (srm)
|
|
|
|
srm->RescaleWorldUnits(f);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Now rescale stuff inside our data structures
|
|
|
|
EPModContextEnumProc proc(f);
|
|
|
|
EnumModContexts(&proc);
|
|
|
|
NotifyDependents(FOREVER, PART_GEOM, REFMSG_CHANGE);
|
|
|
|
}
|
|
|
|
|