00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef PRECOMPILE_PREVIEW_HH
00026 #define PRECOMPILE_PREVIEW_HH
00027
00030
00031 #include "precompile.hh"
00032
00033 class CVertex;
00034 class CTransformationMatrix;
00035
00036 namespace GMap3d
00037 {
00038 class CParameterPreview;
00039 class CParameterObjectPosition;
00040 class CParameterPolylinePosition;
00041 class CParameterCreation;
00042
00046 class CPrecompilePreview : public CPrecompile
00047 {
00048 public:
00049
00051
00059 CPrecompilePreview(CParameterPreview * APreview,
00060 CParameterObjectPosition * AObjectPosition,
00061 CParameterCreation * AObjectParameters,
00062 CParameterPolylinePosition * APolylinePosition);
00063 CPrecompilePreview(const CPrecompilePreview &);
00064 CPrecompile* copy() const;
00065
00067 virtual ~CPrecompilePreview();
00069
00071 virtual TPrecompile getType() const;
00072
00074
00078 void setParameter(CParameter* AParameter);
00079 CParameter* getParameter() const;
00080
00082 void setPreview(CParameterPreview* APreview);
00083
00085 void setPosition(CParameterObjectPosition* APosition);
00086
00088 void setCreation(CParameterCreation* ACreation);
00089
00091 void setPolylinePosition(CParameterPolylinePosition* APolylinePosition);
00092
00094
00096 void setCurrentMode(TMode AMode);
00098
00099 protected:
00100
00102 virtual void drawModel();
00103
00105
00106
00107
00108 void drawPolyline();
00109 void drawPolygon();
00110 void drawMesh();
00111 void drawSphere();
00112 void drawCylinder();
00113 void drawPyramid();
00114 void drawTorus();
00116
00118
00123 void drawMesh1(const CTransformationMatrix & AMatrix,
00124 const CVertex & AOrigin, const CVertex & AVector, int ASx);
00125
00130 void drawMesh2(const CTransformationMatrix & AMatrix,
00131 const CVertex & AOrigin,
00132 const CVertex & AVectorX, int ASx,
00133 const CVertex & AVectorY, int ASy);
00134
00139 void drawMesh3(const CTransformationMatrix & AMatrix,
00140 const CVertex & AOrigin,
00141 const CVertex & AVectorX, int ASx,
00142 const CVertex & AVectorY, int ASy,
00143 const CVertex & AVectorZ, int ASz);
00144
00146
00147 private:
00149 CParameterPreview * FParameterPreview;
00150 CParameterObjectPosition * FParameterPosition;
00151 CParameterCreation * FParameterCreation;
00152 CParameterPolylinePosition * FParameterPolylinePosition;
00153
00155
00156
00157
00158 TMode FCurrentMode;
00159 };
00160
00161 }
00162
00163 #endif // PRECOMPILE_PREVIEW_HH
00164