plvClipBoxCmds.h
上传用户:kellyonhid
上传日期:2013-10-12
资源大小:932k
文件大小:2k
源码类别:

3D图形编程

开发平台:

Visual C++

  1. #ifndef _PLV_CLIP_BOX_CMDS_
  2. #define _PLV_CLIP_BOX_CMDS_
  3. #include <tk.h>
  4. #include <vector.h>
  5. #include "VertexFilter.h"
  6. class Selection
  7. {
  8.  public:
  9.   // definitions
  10.   enum Type { none, line, rect, shape };
  11.   typedef ScreenPnt Pt;
  12.   Selection();
  13.   void clear();
  14.   Pt& operator[] (int idx) { return pts[idx]; };
  15.   const Pt& operator[] (int idx) const { return pts[idx]; };
  16.   // how to interpret the points?
  17.   Type type;
  18.   // selection data
  19.   vector<Pt> pts;
  20. };
  21. extern Selection theSel;
  22. int PlvPrintVoxelsCmd(ClientData clientData, Tcl_Interp *interp, 
  23.      int argc, char *argv[]);
  24. int PlvClearSelectionCmd(ClientData clientData, Tcl_Interp *interp, 
  25.  int argc, char *argv[]);
  26. int PlvDrawBoxSelectionCmd(ClientData clientData, Tcl_Interp *interp, 
  27.    int argc, char *argv[]);
  28. int PlvDrawLineSelectionCmd(ClientData clientData, Tcl_Interp *interp, 
  29.     int argc, char *argv[]);
  30. int PlvDrawShapeSelectionCmd(ClientData clientData, Tcl_Interp *interp, 
  31.      int argc, char *argv[]);
  32. int PlvGetSelectionCursorCmd(ClientData clientData, Tcl_Interp *interp, 
  33.      int argc, char *argv[]);
  34. int PlvClipToSelectionCmd(ClientData clientData, Tcl_Interp *interp, 
  35.   int argc, char *argv[]);
  36. int PlvGetSelectionInfoCmd(ClientData clientData, Tcl_Interp *interp, 
  37.   int argc, char *argv[]);
  38. int PlvGetSelectedMeshesCmd(ClientData clientData, Tcl_Interp *interp, 
  39.     int argc, char *argv[]);
  40. unsigned char* filledPolyPixels (int& width, int& height,
  41.  const vector<ScreenPnt>& pts);
  42. void drawSelection (struct Togl* togl);
  43. void initSelection (struct Togl* togl);
  44. void resizeSelectionToWindow (struct Togl* togl);
  45. #endif // _PLV_CLIP_BOX_CMDS_