📄 splshape.h
字号:
protected:
HCURSOR GetTransformCursor();
BOOL HitTest( ViewExp *vpt, IPoint2 *p, int type, int flags );
BOOL AnyHits( ViewExp *vpt ) { return vpt->NumSubObjHits(); }
BOOL HitAnEndpoint(ViewExp *vpt, IPoint2 *p, BezierShape *shape, int poly, int vert,
BezierShape **shapeOut, int *polyOut, int *vertOut);
public:
SSVertConnectMouseProc(SplineShape* spl, IObjParam *i) { ss=spl; ip=i; }
int proc(
HWND hwnd,
int msg,
int point,
int flags,
IPoint2 m );
};
class SSVertConnectCMode : public CommandMode {
private:
ChangeFGObject fgProc;
SSVertConnectMouseProc eproc;
SplineShape* ss;
public:
SSVertConnectCMode(SplineShape* spl, IObjParam *i) :
fgProc(spl), eproc(spl,i) {ss=spl;}
int Class() { return MODIFY_COMMAND; }
int ID() { return CID_VERTCONNECT; }
MouseCallBack *MouseProc(int *numPoints) { *numPoints=2; return &eproc; }
ChangeForegroundCallback *ChangeFGProc() { return &fgProc; }
BOOL ChangeFG( CommandMode *oldMode ) { return oldMode->ChangeFGProc() != &fgProc; }
void EnterMode();
void ExitMode();
};
/*-------------------------------------------------------------------*/
class SSVertInsertMouseProc : public MouseCallBack {
private:
SplineShape *ss;
IObjParam *ip;
IPoint2 om;
protected:
HCURSOR GetTransformCursor();
BOOL HitTest( ViewExp *vpt, IPoint2 *p, int type, int flags, int hitType );
BOOL AnyHits( ViewExp *vpt ) { return vpt->NumSubObjHits(); }
BOOL InsertWhere(ViewExp *vpt, IPoint2 *p, BezierShape **shapeOut, int *polyOut,int *segOut, int *vertOut);
public:
SSVertInsertMouseProc(SplineShape* spl, IObjParam *i) { ss=spl; ip=i; }
int proc(
HWND hwnd,
int msg,
int point,
int flags,
IPoint2 m );
int override(int mode) { return CLICK_DOWN_POINT; }
};
class SSVertInsertCMode : public CommandMode {
private:
ChangeFGObject fgProc;
SSVertInsertMouseProc eproc;
SplineShape* ss;
int control; // ID of the resource button
public:
SSVertInsertCMode(SplineShape* spl, IObjParam *i) :
fgProc(spl), eproc(spl,i) {ss=spl; control= -1;}
int Class() { return MODIFY_COMMAND; }
int ID() { return CID_VERTINSERT; }
MouseCallBack *MouseProc(int *numPoints) { *numPoints=999999; return &eproc; }
ChangeForegroundCallback *ChangeFGProc() { return &fgProc; }
BOOL ChangeFG( CommandMode *oldMode ) { return oldMode->ChangeFGProc() != &fgProc; }
void EnterMode();
void ExitMode();
void SetControl(int id) { control = id; }
};
/*-------------------------------------------------------------------*/
class SSCreateLineMouseProc : public MouseCallBack {
private:
SplineShape *ss;
IObjParam *ip;
IPoint2 om;
protected:
BOOL HitTest( ViewExp *vpt, IPoint2 *p, int type, int flags, int hitType );
BOOL AnyHits( ViewExp *vpt ) { return vpt->NumSubObjHits(); }
BOOL InsertWhere(ViewExp *vpt, IPoint2 *p, BezierShape **shapeOut, int *polyOut, int *vertOut);
public:
SSCreateLineMouseProc(SplineShape* spl, IObjParam *i) { ss=spl; ip=i; }
int proc(
HWND hwnd,
int msg,
int point,
int flags,
IPoint2 m );
int override(int mode) { return CLICK_DOWN_POINT; }
};
class SSCreateLineCMode : public CommandMode {
private:
ChangeFGObject fgProc;
SSCreateLineMouseProc eproc;
SplineShape* ss;
public:
SSCreateLineCMode(SplineShape* spl, IObjParam *i) :
fgProc(spl), eproc(spl,i) {ss=spl;}
int Class() { return MODIFY_COMMAND; }
int ID() { return CID_CREATELINE; }
MouseCallBack *MouseProc(int *numPoints) { *numPoints=999999; return &eproc; }
ChangeForegroundCallback *ChangeFGProc() { return &fgProc; }
BOOL ChangeFG( CommandMode *oldMode ) { return oldMode->ChangeFGProc() != &fgProc; }
void EnterMode();
void ExitMode();
};
/*-------------------------------------------------------------------*/
class SSBooleanMouseProc : public MouseCallBack {
private:
SplineShape *ss;
IObjParam *ip;
IPoint2 om;
protected:
HCURSOR GetTransformCursor();
BOOL HitTest( ViewExp *vpt, IPoint2 *p, int type, int flags );
BOOL AnyHits( ViewExp *vpt ) { return vpt->NumSubObjHits(); }
public:
SSBooleanMouseProc(SplineShape* spl, IObjParam *i) { ss=spl; ip=i; }
int proc(
HWND hwnd,
int msg,
int point,
int flags,
IPoint2 m );
int override(int mode) { return CLICK_DOWN_POINT; }
};
class SSBooleanCMode : public CommandMode {
private:
ChangeFGObject fgProc;
SSBooleanMouseProc eproc;
SplineShape* ss;
public:
SSBooleanCMode(SplineShape* spl, IObjParam *i) :
fgProc(spl), eproc(spl,i) {ss=spl;}
int Class() { return MODIFY_COMMAND; }
int ID() { return CID_BOOLEAN; }
MouseCallBack *MouseProc(int *numPoints) { *numPoints=9999; return &eproc; }
ChangeForegroundCallback *ChangeFGProc() { return &fgProc; }
BOOL ChangeFG( CommandMode *oldMode ) { return oldMode->ChangeFGProc() != &fgProc; }
void EnterMode();
void ExitMode();
};
/*-------------------------------------------------------------------*/
class SSTrimMouseProc : public MouseCallBack {
private:
SplineShape *ss;
IObjParam *ip;
IPoint2 om;
protected:
HCURSOR GetTransformCursor();
BOOL HitTest( ViewExp *vpt, IPoint2 *p, int type, int flags );
BOOL AnyHits( ViewExp *vpt ) { return vpt->NumSubObjHits(); }
public:
SSTrimMouseProc(SplineShape* spl, IObjParam *i) { ss=spl; ip=i; }
int proc(
HWND hwnd,
int msg,
int point,
int flags,
IPoint2 m );
int override(int mode) { return CLICK_DOWN_POINT; }
};
class SSTrimCMode : public CommandMode {
private:
ChangeFGObject fgProc;
SSTrimMouseProc eproc;
SplineShape* ss;
public:
SSTrimCMode(SplineShape* spl, IObjParam *i) :
fgProc(spl), eproc(spl,i) {ss=spl;}
int Class() { return MODIFY_COMMAND; }
int ID() { return CID_TRIM; }
MouseCallBack *MouseProc(int *numPoints) { *numPoints=9999; return &eproc; }
ChangeForegroundCallback *ChangeFGProc() { return &fgProc; }
BOOL ChangeFG( CommandMode *oldMode ) { return oldMode->ChangeFGProc() != &fgProc; }
void EnterMode();
void ExitMode();
};
/*-------------------------------------------------------------------*/
class SSExtendMouseProc : public MouseCallBack {
private:
SplineShape *ss;
IObjParam *ip;
IPoint2 om;
protected:
HCURSOR GetTransformCursor();
BOOL HitTest( ViewExp *vpt, IPoint2 *p, int type, int flags );
BOOL AnyHits( ViewExp *vpt ) { return vpt->NumSubObjHits(); }
public:
SSExtendMouseProc(SplineShape* spl, IObjParam *i) { ss=spl; ip=i; }
int proc(
HWND hwnd,
int msg,
int point,
int flags,
IPoint2 m );
int override(int mode) { return CLICK_DOWN_POINT; }
};
class SSExtendCMode : public CommandMode {
private:
ChangeFGObject fgProc;
SSExtendMouseProc eproc;
SplineShape* ss;
public:
SSExtendCMode(SplineShape* spl, IObjParam *i) :
fgProc(spl), eproc(spl,i) {ss=spl;}
int Class() { return MODIFY_COMMAND; }
int ID() { return CID_EXTEND; }
MouseCallBack *MouseProc(int *numPoints) { *numPoints=9999; return &eproc; }
ChangeForegroundCallback *ChangeFGProc() { return &fgProc; }
BOOL ChangeFG( CommandMode *oldMode ) { return oldMode->ChangeFGProc() != &fgProc; }
void EnterMode();
void ExitMode();
};
//watje
/*-------------------------------------------------------------------*/
class SSBindMouseProc : public MouseCallBack {
private:
SplineShape *ss;
IObjParam *ip;
IPoint2 om;
protected:
HCURSOR GetTransformCursor();
BOOL HitTest( ViewExp *vpt, IPoint2 *p, int type, int flags );
BOOL HitTestSeg( ViewExp *vpt, IPoint2 *p, int type, int flags );
BOOL AnyHits( ViewExp *vpt ) { return vpt->NumSubObjHits(); }
BOOL HitAnEndpoint(ViewExp *vpt, IPoint2 *p, BezierShape *shape, int poly, int vert,
BezierShape **shapeOut, int *polyOut, int *vertOut);
BOOL HitASegment(ViewExp *vpt, IPoint2 *p, BezierShape *shape, int poly, int vert,
BezierShape **shapeOut, int *polyOut, int *vertOut);
public:
SSBindMouseProc(SplineShape* spl, IObjParam *i) { ss=spl; ip=i; }
int proc(
HWND hwnd,
int msg,
int point,
int flags,
IPoint2 m );
};
class SSBindCMode : public CommandMode {
private:
ChangeFGObject fgProc;
SSBindMouseProc eproc;
SplineShape* ss;
public:
SSBindCMode(SplineShape* spl, IObjParam *i) :
fgProc(spl), eproc(spl,i) {ss=spl;}
int Class() { return MODIFY_COMMAND; }
int ID() { return CID_VERTCONNECT; }
MouseCallBack *MouseProc(int *numPoints) { *numPoints=2; return &eproc; }
ChangeForegroundCallback *ChangeFGProc() { return &fgProc; }
BOOL ChangeFG( CommandMode *oldMode ) { return oldMode->ChangeFGProc() != &fgProc; }
void EnterMode();
void ExitMode();
};
class SSRefineConnectMouseProc : public MouseCallBack {
private:
SplineShape *ss;
IObjParam *ip;
IPoint2 om;
int type; // See above
protected:
HCURSOR GetTransformCursor();
BOOL HitTest( ViewExp *vpt, IPoint2 *p, int type, int flags );
BOOL AnyHits( ViewExp *vpt ) { return vpt->NumSubObjHits(); }
public:
SSRefineConnectMouseProc(SplineShape* spl, IObjParam *i) { ss=spl; ip=i; }
int proc(
HWND hwnd,
int msg,
int point,
int flags,
IPoint2 m );
void SetType(int type) { this->type = type; }
};
class SSRefineConnectCMode : public CommandMode {
private:
ChangeFGObject fgProc;
SSRefineConnectMouseProc eproc;
SplineShape* ss;
int type; // See above
public:
SSRefineConnectCMode(SplineShape* spl, IObjParam *i) :
fgProc(spl), eproc(spl,i) {ss=spl;}
int Class() { return MODIFY_COMMAND; }
int ID() { return CID_REFINECONNECT; }
MouseCallBack *MouseProc(int *numPoints) { *numPoints=1; return &eproc; }
ChangeForegroundCallback *ChangeFGProc() { return &fgProc; }
BOOL ChangeFG( CommandMode *oldMode ) { return oldMode->ChangeFGProc() != &fgProc; }
void EnterMode();
void ExitMode();
void SetType(int type) { this->type = type; eproc.SetType(type); }
};
CoreExport ClassDesc* GetSplineShapeDescriptor();
CoreExport int ApplyOffset(Interface *intf, INode *node, float amount);
CoreExport int MeasureOffset(Interface *intf, INode *node, Point3 *point, float *result);
#endif // __SPLSHAPE_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -