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

3D图形编程

开发平台:

Visual C++

  1. //###############################################################
  2. // plvAnalyze.cc
  3. // Matt Ginzton
  4. // Thu Jun 18 13:02:22 PDT 1998
  5. // 
  6. // Interface for reading points or groups of points from z buffer
  7. //###############################################################
  8. #ifndef _PLV_ANALYZE_H_
  9. #define _PLV_ANALYZE_H_
  10. class Trackball;
  11. class TbObj;
  12. class Selection;
  13. class DisplayableMesh;
  14. #include <tcl.h>
  15. #include "DrawObj.h"
  16. #include "Pnt3.h"
  17. // Lines that represent each cross section of the auto analyze
  18. class Auto_a_Line : public DrawObj {
  19. private:
  20.   struct Togl *togl;
  21.   char axis;
  22.   int x0, y0;
  23.   int len, space, num;
  24. public:
  25.   Auto_a_Line(struct Togl *_togl, char _axis, int _x0, int _y0, 
  26.       int _len, int _space, int _num);
  27.   ~Auto_a_Line();
  28.   void drawthis();
  29. };
  30. // for things that read Z buffer, and need to detect background
  31. void storeMinMaxZBufferValues (void);
  32. int ScreenToWorldCoordinates (int x, int y, Pnt3& ptWorld);
  33. int ScreenToWorldCoordinatesExt (int x, int y, Pnt3& ptWorld,
  34.  struct Togl* togl, Trackball* tb,
  35.  float fudgeFactor);
  36. int
  37. WriteWorldDataFromScreen(ClientData clientData, Tcl_Interp *interp, 
  38.        int argc, char *argv[]);
  39. int
  40. WriteOrthoDepth(ClientData clientData, Tcl_Interp *interp, 
  41.        int argc, char *argv[]);
  42. bool ReadZBufferArea (vector<Pnt3>& pts, const Selection& sel,
  43.       bool bIncludeBlanks = false, bool bRedraw = true,
  44.       bool bReverseBackground = false);
  45. bool findZBufferNeighbor (int x, int y, Pnt3& neighbor, int kMaxTries = 100);
  46. bool findZBufferNeighborExt (int x, int y, Pnt3& neighbor,
  47.      struct Togl* togl, Trackball* tb,
  48.      int kMaxTries = 100, Pnt3* rawPt = NULL,
  49.      bool bRedraw = true,
  50.      bool bReadExistingFromFront = true);
  51. int PlvAnalyzeClipLineDepth(ClientData clientData, Tcl_Interp *interp, 
  52.     int argc, char *argv[]);
  53. int PlvAnalyzeLineModeCmd(ClientData clientData, Tcl_Interp *interp, 
  54.   int argc, char *argv[]);
  55. int PlvAlignToMeshBoxCmd(ClientData clientData, Tcl_Interp *interp, 
  56.  int argc, char *argv[]);
  57. int PlvExportGraphAsText(ClientData clientData, Tcl_Interp *interp, 
  58.  int argc, char *argv[]);
  59. void GetPtMeshMap (int w, int h, vector<DisplayableMesh*>& ptMeshMap);
  60. int wsh_WarpMesh(ClientData clientData, Tcl_Interp *interp, 
  61.  int argc, char *argv[]);
  62. int wsh_AlignPointsToPlane(ClientData clientData, Tcl_Interp *interp, 
  63.  int argc, char *argv[]);
  64. int
  65. PlvDrawAnalyzeLines(ClientData clientData, Tcl_Interp *interp, 
  66.  int argc, char *argv[]);
  67. int
  68. PlvClearAnalyzeLines(ClientData clientData, Tcl_Interp *interp, 
  69.  int argc, char *argv[]);
  70. void
  71. GetPtMeshVector (int xstart, int ystart, int w, int h,
  72.  int winwidth, int winheight,
  73.  vector<DisplayableMesh*>& ptMeshMap);
  74. #endif  // _PLV_ANALYZE_H_