📄 splshape.h
字号:
CoreExport GenericNamedSelSetList& GetNamedSplineSelList();
// ISubMtlAPI methods:
CoreExport MtlID GetNextAvailMtlID(ModContext* mc);
CoreExport BOOL HasFaceSelection(ModContext* mc);
CoreExport void SetSelFaceMtlID(ModContext* mc, MtlID id, BOOL bResetUnsel = FALSE);
CoreExport int GetSelFaceUniqueMtlID(ModContext* mc);
CoreExport int GetSelFaceAnyMtlID(ModContext* mc);
CoreExport int GetMaxMtlID(ModContext* mc);
};
class SSPickSplineAttach :
public PickModeCallback,
public PickNodeCallback {
public:
SplineShape *ss;
SSPickSplineAttach() {ss=NULL;}
BOOL HitTest(IObjParam *ip,HWND hWnd,ViewExp *vpt,IPoint2 m,int flags);
BOOL Pick(IObjParam *ip,ViewExp *vpt);
void EnterMode(IObjParam *ip);
void ExitMode(IObjParam *ip);
HCURSOR GetHitCursor(IObjParam *ip);
BOOL Filter(INode *node);
PickNodeCallback *GetFilter() {return this;}
BOOL RightClick(IObjParam *ip,ViewExp *vpt) {return TRUE;}
};
class SSOutlineTransformer : public Transformer {
public:
CoreExport Point3 Eval(ViewExp *vpt);
SSOutlineTransformer(IObjParam *i) : Transformer(i) {}
};
class SSOutlineMouseProc : public MouseCallBack {
private:
SSOutlineTransformer outlineTrans;
SplineShape *ss;
IObjParam *ip;
Point3 p0, p1;
IPoint2 sp0;
public:
SSOutlineMouseProc(SplineShape* shp, IObjParam *i)
: outlineTrans(i) {ss=shp;ip=i;}
int proc(
HWND hwnd,
int msg,
int point,
int flags,
IPoint2 m );
};
class SSOutlineSelectionProcessor : public GenModSelectionProcessor {
protected:
HCURSOR GetTransformCursor();
public:
SSOutlineSelectionProcessor(SSOutlineMouseProc *mc, SplineShape *s, IObjParam *i)
: GenModSelectionProcessor(mc,s,i) {}
};
class SSOutlineCMode : public CommandMode {
private:
ChangeFGObject fgProc;
SSOutlineSelectionProcessor mouseProc;
SSOutlineMouseProc eproc;
SplineShape* ss;
public:
SSOutlineCMode(SplineShape* ss, IObjParam *i) :
fgProc(ss), mouseProc(&eproc,ss,i), eproc(ss,i) {this->ss=ss;}
int Class() { return MODIFY_COMMAND; }
int ID() { return CID_OUTLINE; }
MouseCallBack *MouseProc(int *numPoints) { *numPoints=2; return &mouseProc; }
ChangeForegroundCallback *ChangeFGProc() { return &fgProc; }
BOOL ChangeFG( CommandMode *oldMode ) { return oldMode->ChangeFGProc() != &fgProc; }
void EnterMode();
void ExitMode();
};
/*-------------------------------------------------------------------*/
class SSFilletTransformer : public Transformer {
public:
CoreExport Point3 Eval(ViewExp *vpt);
SSFilletTransformer(IObjParam *i) : Transformer(i) {}
};
class SSFilletMouseProc : public MouseCallBack {
private:
SSFilletTransformer filletTrans;
SplineShape *ss;
IObjParam *ip;
Point3 p0, p1;
IPoint2 sp0;
public:
SSFilletMouseProc(SplineShape* shp, IObjParam *i)
: filletTrans(i) {ss=shp;ip=i;}
int proc(
HWND hwnd,
int msg,
int point,
int flags,
IPoint2 m );
};
class SSFilletSelectionProcessor : public GenModSelectionProcessor {
protected:
HCURSOR GetTransformCursor();
public:
SSFilletSelectionProcessor(SSFilletMouseProc *mc, SplineShape *s, IObjParam *i)
: GenModSelectionProcessor(mc,s,i) {}
};
class SSFilletCMode : public CommandMode {
private:
ChangeFGObject fgProc;
SSFilletSelectionProcessor mouseProc;
SSFilletMouseProc eproc;
SplineShape* ss;
public:
SSFilletCMode(SplineShape* ss, IObjParam *i) :
fgProc(ss), mouseProc(&eproc,ss,i), eproc(ss,i) {this->ss=ss;}
int Class() { return MODIFY_COMMAND; }
int ID() { return CID_OUTLINE; }
MouseCallBack *MouseProc(int *numPoints) { *numPoints=2; return &mouseProc; }
ChangeForegroundCallback *ChangeFGProc() { return &fgProc; }
BOOL ChangeFG( CommandMode *oldMode ) { return oldMode->ChangeFGProc() != &fgProc; }
void EnterMode();
void ExitMode();
};
/*-------------------------------------------------------------------*/
class SSChamferTransformer : public Transformer {
public:
CoreExport Point3 Eval(ViewExp *vpt);
SSChamferTransformer(IObjParam *i) : Transformer(i) {}
};
class SSChamferMouseProc : public MouseCallBack {
private:
SSChamferTransformer chamferTrans;
SplineShape *ss;
IObjParam *ip;
Point3 p0, p1;
IPoint2 sp0;
public:
SSChamferMouseProc(SplineShape* shp, IObjParam *i)
: chamferTrans(i) {ss=shp;ip=i;}
int proc(
HWND hwnd,
int msg,
int point,
int flags,
IPoint2 m );
};
class SSChamferSelectionProcessor : public GenModSelectionProcessor {
protected:
HCURSOR GetTransformCursor();
public:
SSChamferSelectionProcessor(SSChamferMouseProc *mc, SplineShape *s, IObjParam *i)
: GenModSelectionProcessor(mc,s,i) {}
};
class SSChamferCMode : public CommandMode {
private:
ChangeFGObject fgProc;
SSChamferSelectionProcessor mouseProc;
SSChamferMouseProc eproc;
SplineShape* ss;
public:
SSChamferCMode(SplineShape* ss, IObjParam *i) :
fgProc(ss), mouseProc(&eproc,ss,i), eproc(ss,i) {this->ss=ss;}
int Class() { return MODIFY_COMMAND; }
int ID() { return CID_OUTLINE; }
MouseCallBack *MouseProc(int *numPoints) { *numPoints=2; return &mouseProc; }
ChangeForegroundCallback *ChangeFGProc() { return &fgProc; }
BOOL ChangeFG( CommandMode *oldMode ) { return oldMode->ChangeFGProc() != &fgProc; }
void EnterMode();
void ExitMode();
};
/*-------------------------------------------------------------------*/
class SSSegBreakTransformer : public Transformer {
public:
CoreExport Point3 Eval(ViewExp *vpt);
SSSegBreakTransformer(IObjParam *i) : Transformer(i) {}
};
class SSSegBreakMouseProc : 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:
SSSegBreakMouseProc(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 SSSegBreakCMode : public CommandMode {
private:
ChangeFGObject fgProc;
SSSegBreakMouseProc eproc;
SplineShape* ss;
public:
SSSegBreakCMode(SplineShape* spl, IObjParam *i) :
fgProc(spl), eproc(spl,i) {ss=spl;}
int Class() { return MODIFY_COMMAND; }
int ID() { return CID_SEGBREAK; }
MouseCallBack *MouseProc(int *numPoints) { *numPoints=1; return &eproc; }
ChangeForegroundCallback *ChangeFGProc() { return &fgProc; }
BOOL ChangeFG( CommandMode *oldMode ) { return oldMode->ChangeFGProc() != &fgProc; }
void EnterMode();
void ExitMode();
};
/*-------------------------------------------------------------------*/
#define REFINE_VERT 0
#define REFINE_SEG 1
class SSSegRefineMouseProc : 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:
SSSegRefineMouseProc(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 SSSegRefineCMode : public CommandMode {
private:
ChangeFGObject fgProc;
SSSegRefineMouseProc eproc;
SplineShape* ss;
int type; // See above
public:
SSSegRefineCMode(SplineShape* spl, IObjParam *i) :
fgProc(spl), eproc(spl,i) {ss=spl;}
int Class() { return MODIFY_COMMAND; }
int ID() { return CID_SEGREFINE; }
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); }
};
/*-------------------------------------------------------------------*/
class SSCrossInsertMouseProc : 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:
SSCrossInsertMouseProc(SplineShape* spl, IObjParam *i) { ss=spl; ip=i; }
int proc(
HWND hwnd,
int msg,
int point,
int flags,
IPoint2 m );
};
class SSCrossInsertCMode : public CommandMode {
private:
ChangeFGObject fgProc;
SSCrossInsertMouseProc eproc;
SplineShape* ss;
public:
SSCrossInsertCMode(SplineShape* spl, IObjParam *i) :
fgProc(spl), eproc(spl,i) {ss=spl;}
int Class() { return MODIFY_COMMAND; }
int ID() { return CID_CROSSINSERT; }
MouseCallBack *MouseProc(int *numPoints) { *numPoints=1; return &eproc; }
ChangeForegroundCallback *ChangeFGProc() { return &fgProc; }
BOOL ChangeFG( CommandMode *oldMode ) { return oldMode->ChangeFGProc() != &fgProc; }
void EnterMode();
void ExitMode();
};
/*-------------------------------------------------------------------*/
class SSVertConnectMouseProc : public MouseCallBack {
private:
SplineShape *ss;
IObjParam *ip;
IPoint2 om;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -