245 lines
9.9 KiB
C++
245 lines
9.9 KiB
C++
//ROMTEAM WorldEditor
|
|
////////////////////////////////////////////////////////////////////////////////////////
|
|
// File : Arrow3D.cpp: implementation file for the Arrow3D classes
|
|
// Author : Viorel Preoteasa
|
|
// Date : 97.11
|
|
// Description :
|
|
////////////////////////////////////////////////////////////////////////////////////////
|
|
#include "stdafx.h"
|
|
#include "ACP_Base.h"
|
|
|
|
#include "ITF.h"
|
|
#include "incGAM.h"
|
|
#include "GLI.h"
|
|
#include "DPT.h"
|
|
|
|
#undef CPA_WANTS_IMPORT
|
|
#undef CPA_EXPORT
|
|
#define CPA_WANTS_EXPORT
|
|
#include "OGD.h"
|
|
#undef CPA_WANTS_EXPORT
|
|
#define CPA_WANTS_IMPORT
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Method : Construction/Destruction of Arrow3D
|
|
// Date : 97-11
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Description :
|
|
// Author : Viorel Preoteasa - CPA2
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Modification :
|
|
// Date :
|
|
// By :
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
Arrow3D::Arrow3D (BOOL bModifiable, CPA_EditorBase *_p_oEditor, const CString _csName , tdeSaveStatus _eStatus )
|
|
: Shape3D (bModifiable, _p_oEditor, 13, 1, _csName , _eStatus)
|
|
{
|
|
CommonArrow3D();
|
|
}
|
|
|
|
Arrow3D::Arrow3D (BOOL bModifiable, CPA_EditorBase *_p_oEditor, CPA_BaseObject *_p_oOwnerFile, const CString _csName, char *_p_cRefPath, tdeSaveStatus _eStatus )
|
|
: Shape3D (bModifiable, _p_oEditor, 13, 1, _p_oOwnerFile, _csName, _p_cRefPath, _eStatus)
|
|
{
|
|
CommonArrow3D();
|
|
}
|
|
|
|
Arrow3D::Arrow3D (BOOL bModifiable, CPA_EditorBase *_p_oEditor, CPA_BaseObject *_p_oOwnerFile, ACP_tdxHandleOfObject _hObject, const CString _csName, char *_p_cRefPath, tdeSaveStatus _eStatus)
|
|
: Shape3D (bModifiable, _p_oEditor, _p_oOwnerFile, _hObject, _csName, _p_cRefPath, _eStatus)
|
|
{
|
|
CommonArrow3D();
|
|
}
|
|
|
|
|
|
Arrow3D::~Arrow3D()
|
|
{
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Method : CommonArrow3D
|
|
// Date : 97-11
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Description : Common initialisation
|
|
// Author : Viorel Preoteasa - CPA2
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Modification :
|
|
// Date :
|
|
// By :
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
void Arrow3D::CommonArrow3D()
|
|
{
|
|
MTH3D_tdstVector a13_stPoint [13];
|
|
|
|
MTH3D_M_vSetVectorElements ( a13_stPoint, -0.05f, -0.05f, -0.6f);
|
|
MTH3D_M_vSetVectorElements ( a13_stPoint+1, 0.05f,-0.05f,-0.6f);
|
|
MTH3D_M_vSetVectorElements ( a13_stPoint+2, 0.05f,0.05f,-0.6f);
|
|
MTH3D_M_vSetVectorElements ( a13_stPoint+3, -0.05f,0.05f,-0.6f);
|
|
MTH3D_M_vSetVectorElements ( a13_stPoint+4, -0.05f,-0.05f,-0.2f);
|
|
MTH3D_M_vSetVectorElements ( a13_stPoint+5, 0.05f,-0.05f,-0.2f);
|
|
MTH3D_M_vSetVectorElements ( a13_stPoint+6, 0.05f,0.05f,-0.2f);
|
|
MTH3D_M_vSetVectorElements ( a13_stPoint+7, -0.05f,0.05f,-0.2f);
|
|
MTH3D_M_vSetVectorElements ( a13_stPoint+8, -0.1f,-0.1f,-0.2f);
|
|
MTH3D_M_vSetVectorElements ( a13_stPoint+9, 0.1f,-0.1f,-0.2f);
|
|
MTH3D_M_vSetVectorElements ( a13_stPoint+10, 0.1f,0.1f,-0.2f);
|
|
MTH3D_M_vSetVectorElements ( a13_stPoint+11, -0.1f,0.1f,-0.2f);
|
|
MTH3D_M_vSetVectorElements ( a13_stPoint+12, 0.f,0.f,0.0f);
|
|
|
|
for ( int i=0; i<13; i++ )
|
|
{
|
|
MTH3D_M_vMulScalarVector(a13_stPoint+i,2.f, a13_stPoint+i);
|
|
}
|
|
fn_vSetListOfPoints(13, a13_stPoint);
|
|
m_hElement = fn_hCreateElementIndexedTriangle(22,0);
|
|
|
|
fn_eSetIndexedTriangle ( m_hElement, 0, 0, 1, 3 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 1, 1, 2, 3 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 2, 4, 5, 1 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 3, 1, 0, 4 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 4, 1, 5, 6 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 5, 1, 6, 2 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 6, 3 ,2, 6 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 7, 6, 7, 3 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 8, 0, 3, 7 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 9, 7, 4, 0 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 10,8, 9, 4 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 11,9, 5, 4 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 12,9, 10,5 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 13,5, 10,6);
|
|
fn_eSetIndexedTriangle ( m_hElement, 14,6, 10,11 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 15,6, 11,7 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 16,11,8, 7 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 17,7, 8, 4);
|
|
fn_eSetIndexedTriangle ( m_hElement, 18,9, 12,10);
|
|
fn_eSetIndexedTriangle ( m_hElement, 19,10,12,11);
|
|
fn_eSetIndexedTriangle ( m_hElement, 20,11,12,8);
|
|
fn_eSetIndexedTriangle ( m_hElement, 21,8, 12,9 );
|
|
|
|
EndCreate();
|
|
}
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Method : Construction/Destruction of DoubleArrow3D
|
|
// Date : 98-05
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Description :
|
|
// Author : Ionut Grozea- CPA2
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Modification :
|
|
// Date :
|
|
// By :
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
DoubleArrow3D::DoubleArrow3D (BOOL bModifiable, CPA_EditorBase *_p_oEditor, const CString _csName , tdeSaveStatus _eStatus )
|
|
: Shape3D (bModifiable, _p_oEditor, 18, 1, _csName , _eStatus)
|
|
{
|
|
CommonDoubleArrow3D();
|
|
}
|
|
|
|
DoubleArrow3D::DoubleArrow3D (BOOL bModifiable, CPA_EditorBase *_p_oEditor, CPA_BaseObject *_p_oOwnerFile, const CString _csName, char *_p_cRefPath, tdeSaveStatus _eStatus )
|
|
: Shape3D (bModifiable, _p_oEditor, 18, 1, _p_oOwnerFile, _csName, _p_cRefPath, _eStatus)
|
|
{
|
|
CommonDoubleArrow3D();
|
|
}
|
|
|
|
DoubleArrow3D::DoubleArrow3D (BOOL bModifiable, CPA_EditorBase *_p_oEditor, CPA_BaseObject *_p_oOwnerFile, ACP_tdxHandleOfObject _hObject, const CString _csName, char *_p_cRefPath, tdeSaveStatus _eStatus)
|
|
: Shape3D (bModifiable, _p_oEditor, _p_oOwnerFile, _hObject, _csName, _p_cRefPath, _eStatus)
|
|
{
|
|
CommonDoubleArrow3D();
|
|
}
|
|
|
|
|
|
DoubleArrow3D::~DoubleArrow3D()
|
|
{
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Method : CommonDoubleArrow3d
|
|
// Date : 98-05
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Description : Common initialisation
|
|
// Author : Ionut Grozea- CPA2
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Modification :
|
|
// Date :
|
|
// By :
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
void DoubleArrow3D::CommonDoubleArrow3D()
|
|
{
|
|
MTH3D_tdstVector a18_stPoint [18];
|
|
|
|
MTH3D_M_vSetVectorElements ( a18_stPoint, -0.05f, -0.05f, -0.2f);
|
|
MTH3D_M_vSetVectorElements ( a18_stPoint+1, 0.05f,-0.05f,-0.2f);
|
|
MTH3D_M_vSetVectorElements ( a18_stPoint+2, 0.05f,0.05f,-0.2f);
|
|
MTH3D_M_vSetVectorElements ( a18_stPoint+3, -0.05f,0.05f,-0.2f);
|
|
MTH3D_M_vSetVectorElements ( a18_stPoint+4, -0.05f,-0.05f,0.2f);
|
|
MTH3D_M_vSetVectorElements ( a18_stPoint+5, 0.05f,-0.05f,0.2f);
|
|
MTH3D_M_vSetVectorElements ( a18_stPoint+6, 0.05f,0.05f,0.2f);
|
|
MTH3D_M_vSetVectorElements ( a18_stPoint+7, -0.05f,0.05f,0.2f);
|
|
|
|
|
|
MTH3D_M_vSetVectorElements ( a18_stPoint+8, -0.1f,-0.1f,0.2f);
|
|
MTH3D_M_vSetVectorElements ( a18_stPoint+9, 0.1f,-0.1f,0.2f);
|
|
MTH3D_M_vSetVectorElements ( a18_stPoint+10, 0.1f,0.1f,0.2f);
|
|
MTH3D_M_vSetVectorElements ( a18_stPoint+11, -0.1f,0.1f,0.2f);
|
|
MTH3D_M_vSetVectorElements ( a18_stPoint+12, 0.f,0.f,0.4f);
|
|
|
|
MTH3D_M_vSetVectorElements ( a18_stPoint+13, -0.1f,-0.1f,-0.2f);
|
|
MTH3D_M_vSetVectorElements ( a18_stPoint+14, 0.1f,-0.1f,-0.2f);
|
|
MTH3D_M_vSetVectorElements ( a18_stPoint+15, 0.1f,0.1f,-0.2f);
|
|
MTH3D_M_vSetVectorElements ( a18_stPoint+16, -0.1f,0.1f,-0.2f);
|
|
MTH3D_M_vSetVectorElements ( a18_stPoint+17, 0.f,0.f,-0.4f);
|
|
|
|
|
|
for ( int i=0; i<18; i++ )
|
|
{
|
|
MTH3D_M_vMulScalarVector(a18_stPoint+i,2.f,a18_stPoint+i);
|
|
}
|
|
fn_vSetListOfPoints(18, a18_stPoint);
|
|
m_hElement = fn_hCreateElementIndexedTriangle(34,0);
|
|
|
|
fn_eSetIndexedTriangle ( m_hElement, 0, 0, 1, 3 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 1, 1, 2, 3 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 2, 4, 5, 1 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 3, 1, 0, 4 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 4, 1, 5, 6 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 5, 1, 6, 2 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 6, 3 ,2, 6 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 7, 6, 7, 3 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 8, 0, 3, 7 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 9, 7, 4, 0 );
|
|
|
|
fn_eSetIndexedTriangle ( m_hElement, 10,8, 9, 4 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 11,9, 5, 4 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 12,9, 10,5 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 13,5, 10,6);
|
|
fn_eSetIndexedTriangle ( m_hElement, 14,6, 10,11 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 15,6, 11,7 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 16,11,8, 7 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 17,7, 8, 4);
|
|
fn_eSetIndexedTriangle ( m_hElement, 18,9, 12,10);
|
|
fn_eSetIndexedTriangle ( m_hElement, 19,10,12,11);
|
|
fn_eSetIndexedTriangle ( m_hElement, 20,11,12,8);
|
|
fn_eSetIndexedTriangle ( m_hElement, 21,8, 12,9 );
|
|
|
|
|
|
fn_eSetIndexedTriangle ( m_hElement, 22,14, 13, 0 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 23,1, 14, 0 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 24,15, 14,1 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 25,15, 1,2);
|
|
fn_eSetIndexedTriangle ( m_hElement, 26,15, 2,16 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 27,16, 2,3 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 28,13,16, 3 );
|
|
fn_eSetIndexedTriangle ( m_hElement, 29,13, 3, 0);
|
|
|
|
fn_eSetIndexedTriangle ( m_hElement, 30,15, 17,14);
|
|
fn_eSetIndexedTriangle ( m_hElement, 31,14,17,13);
|
|
fn_eSetIndexedTriangle ( m_hElement, 32,13,17,16);
|
|
fn_eSetIndexedTriangle ( m_hElement, 33,16, 17,15 );
|
|
|
|
|
|
|
|
EndCreate();
|
|
}
|
|
|
|
|