/************************************************************************ Yutaka Ohtake CMeshEditorDoc.h Main class Copyright (c) 1999-2001 The University of Aizu. All Rights Reserved. ************************************************************************/ #if !defined(AFX_MESHEDITORDOC_H__4792520B_E76C_4164_A58A_67256178693D__INCLUDED_) #define AFX_MESHEDITORDOC_H__4792520B_E76C_4164_A58A_67256178693D__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "MeshData.h" #include "FileManager.h" #include "Smoother.h" #include "FeatureDetector.h" #include "Simplifier.h" #include "Subdivider.h" #include "RidgeDialog.h" #include "SmoothDialog.h" #include "Visualization.h" #include "NoiseDialog.h" #include "AdSmoothDialog.h" #include "ProgressViewer.h" #include "AngleDialog.h" #include "TensorDialog.h" #include "DecimationDialog.h" #include "ViewAngleDialog.h" #include "SubdivisionDialog.h" #include "GraphWindow.h" #include "SamplingDialog.h" #include "ImplicitFunction.h" #include "ErrorEstimator.h" #include "AdaptiveGaussianDialog.h" #include "RBF.h" #include "RidgeBelyaevDialog.h" //visualization modes #define SMOOTH_SHADING 1 #define FLAT_SHADING 2 #define WIRE_FRAME 3 #define CURVATURE_COLOR 4 #define RIDGE_PRINCIPAL 6 #define RIDGE_RIDGE 7 #define RIDGE_EDGE 8 #define RIDGE_FACE 9 #define COLOR_MAX 10 #define COLOR_MIN 20 #define RIDGE_PATH 11 #define TAG_EDGE 12 #define VERTEX_CLUSTER 13 #define MAX_TENSOR 14 #define MIN_TENSOR 15 #define PRINCIPAL_DIRECTION_MAX 5 #define PRINCIPAL_DIRECTION_MIN 16 #define TOTAL 17 #define MEAN 18 #define GAUSS 19 #define NON_MANI_VIEW 21 #define EDGE_COLOR 22 #define SILHOUETTE 23 #define MAX_STROKE 24 #define MIN_STROKE 25 #define POINTS 26 #define P_ERROR 27 #define VERTEX_ERROR 28 #define FACE_ERROR 29 #define GAUSSIAN 30 #define SIGMA 31 #define DUAL 32 #define SOL 33 #define RIDGEL 34 #define RIDGES 35 class CMeshEditorDoc : public CDocument { protected: // シリアライズ機能のみから作成します。 CMeshEditorDoc(); DECLARE_DYNCREATE(CMeshEditorDoc) // アトリビュート public: MeshData* mesh; MeshData* last_mesh; FileManager* file_manager; FeatureDetector* feature_detector; Smoother* smoother; Simplifier* simplifier; Subdivider* subdivider; RidgeDialog* ridge_dialog; SmoothDialog* smooth_dialog; Visualization* visual_dialog; NoiseDialog* noise_dialog; AdSmoothDialog* ad_smooth_dialog; ProgressViewer* pro_dia; AngleDialog* angle_dia; TensorDialog* tensor_dia; DecimationDialog* decimation_dia; ViewAngleDialog* view_angle_dia; SubdivisionDialog* subdiv_dia; GraphWindow* graph_win; SamplingDialog* sample_dia; AdaptiveGaussianDialog* gauss_dia; RidgeBelyaevDialog* ridge_B_dia; RBF* rbf; int vis_mode; bool is_deformed; ImplicitFunction* func; float* p_error; ErrorEstimator* err_est; // オペレーション public: void drawMesh(); //オーバーライド // ClassWizard は仮想関数のオーバーライドを生成します。 //{{AFX_VIRTUAL(CMeshEditorDoc) public: virtual BOOL OnNewDocument(); virtual void Serialize(CArchive& ar); //}}AFX_VIRTUAL // インプリメンテーション public: void selectTriangle(float s[3], float d[3]); void mesureError(FILE* v_err_file, FILE* n_err_file, FILE *k_err_file, FILE *v_max_file, FILE *n_max_file, FILE *k_max_file, int type); virtual ~CMeshEditorDoc(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif protected: // 生成されたメッセージ マップ関数 protected: void draw(); //{{AFX_MSG(CMeshEditorDoc) afx_msg void OnFileOpen(); afx_msg void OnWire(); afx_msg void OnVisual(); afx_msg void OnAdSmooth(); afx_msg void OnAngle(); afx_msg void OnEdge(); afx_msg void OnEnhance(); afx_msg void OnFileSave(); afx_msg void OnFileSaveAs(); afx_msg void OnFlat(); afx_msg void OnRidge(); afx_msg void OnSimplify(); afx_msg void OnSmooth(); afx_msg void OnSubdivide(); afx_msg void OnSmoothShade(); afx_msg void OnPrincipal(); afx_msg void OnCurvature(); afx_msg void OnTensorSmooth(); afx_msg void OnCurvature2(); afx_msg void OnNoise(); afx_msg void OnGauss(); afx_msg void OnMaxTensor(); afx_msg void OnMean(); afx_msg void OnMinTensor(); afx_msg void OnPrincipal2(); afx_msg void OnTotal(); afx_msg void OnUndo(); afx_msg void OnViewDire(); afx_msg void OnNonMani(); afx_msg void OnEdgeCurvature(); afx_msg void OnSil(); afx_msg void OnMinStroke(); afx_msg void OnMaxStroke(); afx_msg void OnGreen(); afx_msg void OnRed(); afx_msg void OnBlue(); afx_msg void OnRgb(); afx_msg void OnPoints(); afx_msg void OnError(); afx_msg void OnFaceError(); afx_msg void OnVertexError(); afx_msg void OnFlip(); afx_msg void OnAdGauss(); afx_msg void OnDual(); afx_msg void OnWhite(); afx_msg void OnSavePoint(); afx_msg void OnRbfFit(); afx_msg void OnBelyaevCgi98(); afx_msg void OnSaveDual(); afx_msg void OnSaveRr(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; ///////////////////////////////////////////////////////////////////////////// //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ は前行の直前に追加の宣言を挿入します。 #endif // !defined(AFX_MESHEDITORDOC_H__4792520B_E76C_4164_A58A_67256178693D__INCLUDED_)