183 lines
9.2 KiB
C++
183 lines
9.2 KiB
C++
/*=========================================================================*/
|
|
/* CAMDLLb.hpp : base of camera DLL*/
|
|
/* This is a part of the CPA project.*/
|
|
/**/
|
|
/* Version 1.0*/
|
|
/* Creation date 19/03/97*/
|
|
/* Revision date*/
|
|
/**/
|
|
/* (c) Ubi Studio 1996*/
|
|
/**/
|
|
/* DO NOT MODIFY THAT FILE. IF SOMETHING NEEDS TO BE CHANGE, PLEASE CONTACT*/
|
|
/* VINCENT GRECO OR CHRISTOPHE BEAUDET.*/
|
|
/*=========================================================================*/
|
|
|
|
#ifndef __CAMDLLB_HPP__
|
|
#define __CAMDLLB_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
|
|
/****************************************/
|
|
|
|
|
|
#ifdef ACTIVE_EDITOR
|
|
|
|
#include "objDLLb.hpp"
|
|
|
|
|
|
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
|
|
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
|
|
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
|
|
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
|
|
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
|
|
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
|
|
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
|
|
/* CPA_CameraCoords class : used to give coordinates to the camera*/
|
|
|
|
typedef enum {WorldCoordinates,CameraCoordinates} tdeAxisSystem;
|
|
|
|
|
|
class CPA_EXPORT CPA_CameraCoords
|
|
{
|
|
private:
|
|
tdeAxisSystem m_eAxisSystem;
|
|
float m_fX;
|
|
float m_fY;
|
|
float m_fZ;
|
|
|
|
public:
|
|
CPA_CameraCoords(tdeAxisSystem eAxis = WorldCoordinates, float fX = 0, float fY = 0, float fZ = 0);
|
|
|
|
void SetX(float fX) { m_fX = fX;};
|
|
void SetY(float fY) { m_fY = fY;};
|
|
void SetZ(float fZ) { m_fZ = fZ;};
|
|
void SetXYZ(float fX, float fY, float fZ);
|
|
void SetAxisSystem(tdeAxisSystem eAxis) { m_eAxisSystem = eAxis;};
|
|
|
|
float GetX() {return m_fX;};
|
|
float GetY() {return m_fY;};
|
|
float GetZ() {return m_fZ;};
|
|
tdeAxisSystem GetAxisSystem() {return m_eAxisSystem;};
|
|
|
|
void SetCoords(MTH3D_tdstVector *p_stVector);
|
|
void SetCoords(POS_tdstCompletePosition *p_stMatrix);
|
|
|
|
void GetCoords(MTH3D_tdstVector &r_stVector);
|
|
void GetCoords(POS_tdstCompletePosition &r_stMatrix);
|
|
};
|
|
|
|
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
|
|
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
|
|
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
|
|
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
|
|
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
|
|
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
|
|
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////*/
|
|
|
|
typedef enum {rPoint, rSuperObject, rCamera, rTarget} tdeRotationCenterType;
|
|
typedef enum {tPoint, tSuperObject, tNone} tdeTargetType;
|
|
typedef enum {Relative, Absolute} tdeCoordsType;
|
|
typedef enum {X_Camera, Y_Camera, Z_Camera, X_World, Y_World, Z_World, X_Custom, Y_Custom, Z_Custom} tdeAxis;
|
|
/* ANNECY MT NewInterface 26/03/98 {*/
|
|
typedef enum {DisplayNone,DisplayDownRight,DisplayDownLeft} tdeDisplayReferential;
|
|
/* ENDANNECY MT NewInterface }*/
|
|
|
|
class CPA_DialogBar;
|
|
|
|
/*##########################################################################*/
|
|
/* camera DLL Base Class*/
|
|
class CPA_EXPORT CPA_CameraDLLBase : public CPA_ObjectDLLBase
|
|
{
|
|
|
|
public:
|
|
/* constructor*/
|
|
CPA_CameraDLLBase() {};
|
|
~CPA_CameraDLLBase() {};
|
|
|
|
/* add here all camera-specific functions*/
|
|
virtual void SendDialogBarCommandToCamera(CPA_BaseObject *p_oCamera,UINT nID){};
|
|
|
|
virtual void Activate(CPA_BaseObject *p_oCamera, DEV_ViewPort3D *p_oViewPort, CPA_DialogBar *p_oPopUpParent, CPoint oPos){};
|
|
virtual void Disactivate(CPA_BaseObject *p_oCamera){};
|
|
virtual BOOL IsActive(CPA_BaseObject *p_oCamera) {return FALSE;};
|
|
|
|
virtual void SetRotationAxisSystem(CPA_BaseObject *p_oCamera, tdeAxisSystem eSystem){};
|
|
virtual void SetTranslationAxisSystem(CPA_BaseObject *p_oCamera, tdeAxisSystem eSystem){};
|
|
|
|
virtual tdeAxisSystem GetRotationAxisSystem(CPA_BaseObject *p_oCamera){return WorldCoordinates;};
|
|
virtual tdeAxisSystem GetTranslationAxisSystem(CPA_BaseObject *p_oCamera){return WorldCoordinates;};
|
|
|
|
virtual BOOL SetRotationCenterType(CPA_BaseObject *p_oCamera, tdeRotationCenterType eRotCenterType){return FALSE;};
|
|
virtual tdeRotationCenterType GetRotationCenterType(CPA_BaseObject *p_oCamera){return rCamera;};
|
|
virtual tdeRotationCenterType GetEffectiveRotationCenterType(CPA_BaseObject *p_oCamera){return rCamera;};
|
|
|
|
virtual BOOL SetTargetType(CPA_BaseObject *p_oCamera, tdeTargetType eTargetType){return FALSE;};
|
|
virtual tdeTargetType GetTargetType(CPA_BaseObject *p_oCamera){return tNone;};
|
|
|
|
virtual BOOL ZoomOnTarget(CPA_BaseObject *p_oCamera, CPA_SuperObject *pTarget){return FALSE;};
|
|
|
|
virtual void SetRotationCenterPoint(CPA_BaseObject *p_oCamera, CPA_CameraCoords *p_oRotationCenter, tdeCoordsType eType = Absolute){};
|
|
virtual BOOL SetRotationCenterSuperObject(CPA_BaseObject *p_oCamera, CPA_SuperObject *p_oSuperObject){return FALSE;};
|
|
virtual BOOL GetRotationCenter(CPA_BaseObject *p_oCamera, MTH3D_tdstVector &r_stCenter){return FALSE;};
|
|
|
|
virtual void SetTargetPoint(CPA_BaseObject *p_oCamera, CPA_CameraCoords *p_oRotationCenter){};
|
|
virtual BOOL SetTargetSuperObject(CPA_BaseObject *p_oCamera, CPA_SuperObject *p_oSuperObject){return FALSE;};
|
|
virtual BOOL GetTarget(CPA_BaseObject *p_oCamera, MTH3D_tdstVector &r_stTarget){return FALSE;};
|
|
|
|
|
|
virtual void Translate(CPA_BaseObject *p_oCamera, CPA_CameraCoords *p_oOffset, BOOL bUserDefinedAxis = FALSE){};
|
|
virtual void SetPosition(CPA_BaseObject *p_oCamera, CPA_CameraCoords *p_oPos = NULL){};
|
|
|
|
virtual void Rotate(CPA_BaseObject *p_oCamera, tdeAxis eAxis, double dAngle){};
|
|
virtual void SetRotation(CPA_BaseObject *p_oCamera, double dAngleX = 0, double dAngleY = 0, double dAngleZ = 0){};
|
|
|
|
virtual void Update(CPA_BaseObject *p_oCamera){};
|
|
|
|
virtual CPA_SuperObject *CreateDefaultCamera(){return NULL;};
|
|
virtual void InsertCameraInHierarchy(CPA_SuperObject *p_oCameraSO){return;};
|
|
|
|
virtual void ShowDialogBar(CPA_BaseObject *p_oCamera){};
|
|
virtual void HideDialogBar(CPA_BaseObject *p_oCamera){};
|
|
|
|
virtual CPA_BaseObject *CopySlotCamera(CPA_BaseObject* p_oCamera){return NULL;};
|
|
virtual void CameraToWorldCoordinates_Point(CPA_BaseObject *_p_oCamera, MTH3D_tdstVector &r_stVector){};
|
|
virtual void CameraToWorldCoordinates_Vector(CPA_BaseObject *_p_oCamera, MTH3D_tdstVector &r_stVector){};
|
|
virtual void WorldToCameraCoordinates_Point(CPA_BaseObject *_p_oCamera, MTH3D_tdstVector &r_stVector){};
|
|
virtual void WorldToCameraCoordinates_Vector(CPA_BaseObject *_p_oCamera, MTH3D_tdstVector &r_stVector){};
|
|
|
|
virtual void GetMatrix(CPA_BaseObject *_p_oCamera, POS_tdstCompletePosition *p_oMatrix){};
|
|
virtual void SetMatrix(CPA_BaseObject *_p_oCamera, POS_tdstCompletePosition *p_oMatrix){};
|
|
|
|
|
|
/* camera - viewport communication specific functions*/
|
|
|
|
virtual BOOL SendKeyDownToCamera (CPA_BaseObject *p_oCamera, UINT nChar, UINT nRepCnt, UINT nFlags) {return FALSE;};
|
|
virtual BOOL SendKeyUpToCamera (CPA_BaseObject *p_oCamera, UINT nChar, UINT nRepCnt, UINT nFlags) {return FALSE;};
|
|
virtual BOOL SendMouseMoveToCamera (CPA_BaseObject *p_oCamera, UINT nFlags, tdstMousePos *p_stPos, MTH3D_tdstVector *p_stVect) { return FALSE; };
|
|
virtual BOOL SendLButtonDblClkToCamera (CPA_BaseObject *p_oCamera, UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo) { return FALSE; };
|
|
virtual BOOL SendRButtonDblClkToCamera (CPA_BaseObject *p_oCamera, UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo) { return FALSE; };
|
|
virtual BOOL SendLButtonDownToCamera (CPA_BaseObject *p_oCamera, UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo) { return FALSE; };
|
|
virtual BOOL SendRButtonDownToCamera (CPA_BaseObject *p_oCamera, UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo) { return FALSE; };
|
|
virtual BOOL SendLButtonUpToCamera (CPA_BaseObject *p_oCamera, UINT nFlags, tdstMousePos *p_stPos) { return FALSE; };
|
|
virtual BOOL SendRButtonUpToCamera (CPA_BaseObject *p_oCamera, UINT nFlags, tdstMousePos *p_stPos) { return FALSE; };
|
|
|
|
virtual BOOL OnToolTipNotify (CPA_BaseObject *p_oCamera, TOOLTIPTEXT *p_TTT, UINT nID) { return FALSE;};
|
|
virtual void DestroyCamera (CPA_SuperObject *p_oCamera) {};
|
|
|
|
/* ANNECY MT NewInterface 26/03/98 {*/
|
|
virtual void SetReferentialDisplayMode (tdeDisplayReferential eDisplayMode){};
|
|
virtual tdeDisplayReferential GetReferentialDisplayMode () {return DisplayNone;};
|
|
/* ENDANNECY MT NewInterface }*/
|
|
};
|
|
|
|
#endif /* ACTIVE_EDITOR*/
|
|
#endif /* __CAMDLLB_HPP__*/
|