// FileManager.h: FileManager クラスのインターフェイス // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_FILEMANAGER_H__84206D95_38F8_41BC_BA6F_F12B3D1109F2__INCLUDED_) #define AFX_FILEMANAGER_H__84206D95_38F8_41BC_BA6F_F12B3D1109F2__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "MeshData.h" #include "stdio.h" class FileManager { protected: void openWaveFront(MeshData* mesh); void openOriginal(MeshData *mesh); void openPly(MeshData* mesh); void openCloud(MeshData* mesh); FILE* file; CString file_name; CString file_ext; public: void saveRR(MeshData *mesh); void saveDualMesh(MeshData* mesh); void openMwnB(MeshData* mesh); void openOriginalRD(MeshData *mesh); void openOriginalTN(MeshData *mesh); void openOriginalHK(MeshData *mesh); void savePointWithNormalV(MeshData *mesh); void saveRidgePointWithNormal(MeshData* mesh); void savePointWithNormal(MeshData* mesh); void saveRidge(MeshData* mesh); void saveOriginal(MeshData* mesh); void save(MeshData* mesh); void openRidge(MeshData* mesh); void setFile(FILE* file, CString file_name, CString file_ext); void open(MeshData* mesh); FileManager(); virtual ~FileManager(); static inline float SHAPE(float p1[3], float p2[3], float p3[3]){ double l1 = (p1[0]-p2[0])*(p1[0]-p2[0])+(p1[1]-p2[1])*(p1[1]-p2[1])+(p1[2]-p2[2])*(p1[2]-p2[2]); double l2 = (p2[0]-p3[0])*(p2[0]-p3[0])+(p2[1]-p3[1])*(p2[1]-p3[1])+(p2[2]-p3[2])*(p2[2]-p3[2]); double l3 = (p3[0]-p1[0])*(p3[0]-p1[0])+(p3[1]-p1[1])*(p3[1]-p1[1])+(p3[2]-p1[2])*(p3[2]-p1[2]); double area = MeshData::AREA(p1, p2, p3); return (float)(4.0*sqrt(3.0)*area/(l1 + l2 + l3)); } }; #endif // !defined(AFX_FILEMANAGER_H__84206D95_38F8_41BC_BA6F_F12B3D1109F2__INCLUDED_)