// Obj3D.cpp : DLL アプリケーションのエントリ ポイントを定義します。 // #include "stdafx.h" #include "Obj3D.h" #include "Window.h" #include "InputNumDLG.h" //#include "ProgressBarDLG.h" #ifdef _DEBUG #define new DEBUG_NEW #endif using namespace jbxwl; // 唯一のアプリケーション オブジェクトです。 CWinApp theApp; using namespace std; int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) { int nRetCode = 0; // MFC を初期化して、エラーの場合は結果を印刷します。 if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) { // TODO: 必要に応じてエラー コードを変更してください。 _tprintf(_T("致命的なエラー: MFC の初期化ができませんでした\n")); nRetCode = 1; } else{ // TODO: アプリケーションの動作を記述するコードをここに挿入してください。 } return nRetCode; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // OBJ3D_API char* get_info(int n) { switch(n) { case 0 : return "3D図形"; // ここにメニュータイトルを書く case 1 : return "obj3d_proc"; case 2 : return "obj3d_free"; case 3 : return "obj3d_active"; default: return NULL; } } /* 処理不能の場合: NULL を返す 処理失敗の場合: xp->state=ERROR_GRAPH_NODATA にして返す. キャンセルの場合:xp->state=ERROR_GRAPH_CANCEL にして返す. */ OBJ3D_API MSGraph* obj3d_proc(MSGraph* vp) { MSGraph* xp = NULL; ///////////////////////////////////////// // 以下に処理コードを書く // 入力 vp, 出力 xp ///////////////////////////////////////// Vector<> va, vb, vt, et; xp = new MSGraph(200, 200, 200); va.set(100, 100, 20); vb.set(100, 100, 180); MSGraph_Pool(*xp, va, vb, 10, ARGB2Word(0, 0xff, 0, 0)); vt.set(100, 100, 100); et.set(0, 1, 1); MSGraph_Torus(*xp, vt, et, 60, 10, ARGB2Word(0, 0xff, 0xff, 0)); ///////////////////////////////////////// // 処理コードはここまで ///////////////////////////////////////// return xp; } /* TRUEを返すと,入力データ無しでもアクティブになる. */ OBJ3D_API BOOL obj3d_active(void) { return TRUE; } OBJ3D_API void obj3d_free(MSGraph* vp) { if (vp!=NULL) { vp->free(); delete(vp); } return; }