forked from 0ad/0ad
210d77c9b3
This was SVN commit r314.
96 lines
3.1 KiB
C++
Executable File
96 lines
3.1 KiB
C++
Executable File
#ifndef _PSPROP_H
|
|
#define _PSPROP_H
|
|
|
|
#include "MaxInc.h"
|
|
|
|
TCHAR *GetString(int id);
|
|
|
|
#define PSPROP_CLASS_ID Class_ID(0x353f201d, 0x3d01408d)
|
|
|
|
extern ClassDesc* GetPSPropDesc();
|
|
|
|
class PSPropObject : public HelperObject
|
|
{
|
|
public:
|
|
static IObjParam *ip;
|
|
static PSPropObject *editOb;
|
|
IParamBlock2 *pblock2;
|
|
|
|
// Class vars
|
|
/*
|
|
static HWND hParams;
|
|
static IObjParam *iObjParams;
|
|
static int dlgShowAxis;
|
|
static float dlgAxisLength;
|
|
*/
|
|
|
|
// Snap suspension flag (TRUE during creation only)
|
|
BOOL suspendSnap;
|
|
|
|
// Old params... these are for loading old files only. Params are now stored in pb2.
|
|
BOOL showAxis;
|
|
float axisLength;
|
|
|
|
// For use by display system
|
|
int extDispFlags;
|
|
|
|
// inherited virtual methods for Reference-management
|
|
RefResult NotifyRefChanged( Interval changeInt, RefTargetHandle hTarget,
|
|
PartID& partID, RefMessage message );
|
|
|
|
PSPropObject();
|
|
~PSPropObject();
|
|
|
|
// From BaseObject
|
|
int HitTest(TimeValue t, INode* inode, int type, int crossing, int flags, IPoint2 *p, ViewExp *vpt);
|
|
void Snap(TimeValue t, INode* inode, SnapInfo *snap, IPoint2 *p, ViewExp *vpt);
|
|
void SetExtendedDisplay(int flags);
|
|
int Display(TimeValue t, INode* inode, ViewExp *vpt, int flags);
|
|
CreateMouseCallBack* GetCreateMouseCallBack();
|
|
void BeginEditParams( IObjParam *ip, ULONG flags,Animatable *prev);
|
|
void EndEditParams( IObjParam *ip, ULONG flags,Animatable *next);
|
|
TCHAR *GetObjectName() {return GetString(IDS_POINT_HELPER_NAME);}
|
|
|
|
// From Object
|
|
ObjectState Eval(TimeValue time);
|
|
void InitNodeName(TSTR& s) { s = GetString(IDS_DB_POINT); }
|
|
ObjectHandle ApplyTransform(Matrix3& matrix) {return this;}
|
|
int CanConvertToType(Class_ID obtype) {return FALSE;}
|
|
Object* ConvertToType(TimeValue t, Class_ID obtype) {assert(0);return NULL;}
|
|
void GetWorldBoundBox(TimeValue t, INode *mat, ViewExp *vpt, Box3& box );
|
|
void GetLocalBoundBox(TimeValue t, INode *mat, ViewExp *vpt, Box3& box );
|
|
int DoOwnSelectHilite() { return 1; }
|
|
Interval ObjectValidity(TimeValue t);
|
|
int UsesWireColor() {return TRUE;}
|
|
|
|
// Animatable methods
|
|
void DeleteThis() { delete this; }
|
|
Class_ID ClassID() { return PSPROP_CLASS_ID; }
|
|
void GetClassName(TSTR& s) { s = TSTR(GetString(IDS_DB_POINTHELPER_CLASS)); }
|
|
int IsKeyable(){ return 0;}
|
|
int NumSubs() { return 1; }
|
|
Animatable* SubAnim(int i) { return pblock2; }
|
|
TSTR SubAnimName(int i) { return TSTR(_T("Parameters"));}
|
|
IParamArray *GetParamBlock();
|
|
int GetParamBlockIndex(int id);
|
|
int NumParamBlocks() { return 1; }
|
|
IParamBlock2* GetParamBlock(int i) { return pblock2; }
|
|
IParamBlock2* GetParamBlockByID(short id) { return pblock2; }
|
|
|
|
// From ref
|
|
RefTargetHandle Clone(RemapDir& remap = NoRemap());
|
|
IOResult Load(ILoad *iload);
|
|
IOResult Save(ISave *isave);
|
|
int NumRefs() {return 1;}
|
|
RefTargetHandle GetReference(int i) {return pblock2;}
|
|
void SetReference(int i, RefTargetHandle rtarg) {pblock2=(IParamBlock2*)rtarg;}
|
|
|
|
// Local methods
|
|
void InvalidateUI();
|
|
void UpdateParamblockFromVars();
|
|
int DrawAndHit(TimeValue t, INode *inode, ViewExp *vpt);
|
|
};
|
|
|
|
|
|
#endif
|