/*ROMTEAM WorldEditor*/
/*//////////////////////////////////////////////////////////////////////////////////////*/
/* File        : Point3D.hpp: interface for the Point3D class.*/
/* Author      : Cristi Petrescu*/
/* Date        : 97.11*/
/* Description :*/
/*//////////////////////////////////////////////////////////////////////////////////////*/
 
#ifndef __Point3D_HPP__
#define __Point3D_HPP__
 
/****************************************/
#ifndef CPA_EXPORT
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif
#endif
/****************************************/
 
/****************************************/
/* classes*/
/****************************************/
class CPA_EXPORT Point3D : public Shape3D  
{
/* data*/
private:
/* for mouse resizing*/
	MTH3D_tdstVector    m_stCenterInMousePlane;
 
/* functions*/
private:
 
	void CommonPoint3D();
 
public:
/* mouse interface*/
/* this object is not mouse editable*/
	/*virtual BOOL _OnLButtonUp (UINT nFlags, tdstMousePos * p_stPos);*/
	/*virtual BOOL _OnLButtonDown (UINT nFlags, tdstMousePos * p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo * p_stObject);*/
	/*virtual BOOL _OnMouseMove (UINT nFlags, tdstMousePos * p_stPos, MTH3D_tdstVector * pDeplacement);*/
	virtual BOOL _OnLButtonDblClk (UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo);
	/*virtual BOOL _OnKeyUp (UINT nChar , UINT nRepCnt , UINT nFlags);*/
	/*virtual BOOL _OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);*/
/* manage esential data*/
	MTH3D_tdstVector GetPoint ();                  /* return the 3D coordinates of the point*/
    void           SetPoint (MTH3D_tdstVector *);  /* set the 3D coordinates of the point*/
    void           SetPointX (GLI_tdxValue);
    void           SetPointY (GLI_tdxValue);
    void           SetPointZ (GLI_tdxValue);
 
    MTH3D_tdstVector GetCenter ()                          { return GetPoint ();  }
    void           SetCenter (MTH3D_tdstVector * _pCenter) { SetPoint (_pCenter); }
 
    void           SetColorOfPoint (BOOL _bSelected);    /* Set the color of the point : selected or not selected*/
private:
    void           UpdateTestPointPosition ();           /* Set the position of the test point with the position of the point*/
 
public:
/* constructors/destructors*/
	Point3D (CPA_EditorBase *_p_oEditor, /*ACP_tdxIndex xNbPoints, ACP_tdxIndex xNbElements,*/ const CString _csName = "", tdeSaveStatus _eStatus = E_ss_NoSave);
	Point3D (CPA_EditorBase *_p_oEditor, /*ACP_tdxIndex xNbPoints, ACP_tdxIndex xNbElements,*/ CPA_BaseObject *_p_oOwnerFile, const CString _csName = "", char *_p_cRefPath = NULL, tdeSaveStatus _eStatus = E_ss_Responsible);
	Point3D (CPA_EditorBase *_p_oEditor, CPA_BaseObject *_p_oOwnerFile, ACP_tdxHandleOfObject _hObject, const CString _csName = "", char *_p_cRefPath = NULL, tdeSaveStatus _eStatus = E_ss_Modify);
	~Point3D();
};
 
#endif /* */
