You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
238 lines
8.4 KiB
C
238 lines
8.4 KiB
C
2 years ago
|
// XTPChartTransformationDeviceCommand.h
|
||
|
//
|
||
|
// This file is a part of the XTREME TOOLKIT PRO MFC class library.
|
||
|
// (c)1998-2012 Codejock Software, All Rights Reserved.
|
||
|
//
|
||
|
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
|
||
|
// RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
|
||
|
// CONSENT OF CODEJOCK SOFTWARE.
|
||
|
//
|
||
|
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
|
||
|
// IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
|
||
|
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
|
||
|
// SINGLE COMPUTER.
|
||
|
//
|
||
|
// CONTACT INFORMATION:
|
||
|
// support@codejock.com
|
||
|
// http://www.codejock.com
|
||
|
//
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
#if !defined(__XTPCHARTTRANSFORMATIONDEVICECOMMAND_H__)
|
||
|
#define __XTPCHARTTRANSFORMATIONDEVICECOMMAND_H__
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
#if _MSC_VER >= 1000
|
||
|
#pragma once
|
||
|
#endif // _MSC_VER >= 1000
|
||
|
|
||
|
namespace Gdiplus
|
||
|
{
|
||
|
class GpRegion;
|
||
|
};
|
||
|
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// This class helps to save the state of drawing.This object is a kind of
|
||
|
// CXTPChartDeviceCommand.
|
||
|
// Remarks:
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPChartSaveStateDeviceCommand : public CXTPChartDeviceCommand
|
||
|
{
|
||
|
public:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Constructs a CXTPChartSaveStateDeviceCommand object.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPChartSaveStateDeviceCommand();
|
||
|
|
||
|
protected:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Override this function to do some works if any, before the drawing.
|
||
|
// Parameters:
|
||
|
// pDC - A pointer to the chart device context.
|
||
|
// Remarks:
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void BeforeExecute(CXTPChartDeviceContext* pDC);
|
||
|
virtual void AfterExecute(CXTPChartDeviceContext* pDC);
|
||
|
|
||
|
protected:
|
||
|
UINT m_nState;
|
||
|
};
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// This class abstracts the clipping operation of the sceen.This object is
|
||
|
// a kind of CXTPChartDeviceCommand.
|
||
|
// Remarks:
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPChartClipDeviceCommand : public CXTPChartDeviceCommand
|
||
|
{
|
||
|
public:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Constructs a CXTPChartClipDeviceCommand object.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPChartClipDeviceCommand(CRect rcClip);
|
||
|
|
||
|
protected:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this function to do the steps necessary to do the clipping
|
||
|
// operation.
|
||
|
// Parameters:
|
||
|
// pDC - A pointer to the chart device context.
|
||
|
// Remarks:
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void BeforeExecute(CXTPChartDeviceContext* pDC);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this function to do the steps after the clipping operation.
|
||
|
// Parameters:
|
||
|
// pDC - A pointer to the chart device context.
|
||
|
// Remarks:
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void AfterExecute(CXTPChartDeviceContext* pDC);
|
||
|
|
||
|
|
||
|
protected:
|
||
|
CRect m_rcClip; //The clipping rectangle.
|
||
|
CRect m_rcState; //The default clipping rectangle.
|
||
|
};
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// This class abstracts the clipping operation of the sceen.This object is
|
||
|
// a kind of CXTPChartDeviceCommand.
|
||
|
// Remarks:
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPChartClipRegionDeviceCommand : public CXTPChartDeviceCommand
|
||
|
{
|
||
|
public:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Constructs a CXTPChartClipDeviceCommand object.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPChartClipRegionDeviceCommand(const CXTPChartPoints& points);
|
||
|
~CXTPChartClipRegionDeviceCommand();
|
||
|
|
||
|
protected:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this function to do the steps necessary to do the clipping
|
||
|
// operation.
|
||
|
// Parameters:
|
||
|
// pDC - A pointer to the chart device context.
|
||
|
// Remarks:
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void BeforeExecute(CXTPChartDeviceContext* pDC);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this function to do the steps after the clipping operation.
|
||
|
// Parameters:
|
||
|
// pDC - A pointer to the chart device context.
|
||
|
// Remarks:
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void AfterExecute(CXTPChartDeviceContext* pDC);
|
||
|
|
||
|
|
||
|
protected:
|
||
|
Gdiplus::GpRegion* m_pGpState; //The clipping rectangle.
|
||
|
Gdiplus::GpRegion* m_pGpClip; //The default clipping rectangle.
|
||
|
};
|
||
|
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// This class abstracts a rotation device command, which does rotation
|
||
|
// transformtions.This is a kind of CXTPChartDeviceCommand.
|
||
|
// Remarks:
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPChartRotateDeviceCommand : public CXTPChartDeviceCommand
|
||
|
{
|
||
|
public:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Constructs a CXTPChartRotateDeviceCommand object.
|
||
|
// Parameters:
|
||
|
// fAngle - The angle of rotation.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPChartRotateDeviceCommand(float fAngle);
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Constructs a CXTPChartRotateDeviceCommand object.
|
||
|
// Parameters:
|
||
|
// fAngle - The angle of rotation.
|
||
|
// rotateVector - The vector to be rotated.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPChartRotateDeviceCommand(float fAngle, const CXTPPoint3d& rotateVector);
|
||
|
|
||
|
public:
|
||
|
|
||
|
CXTPChartElement* HitTest(CPoint point, CXTPChartElement* pParent) const;
|
||
|
protected:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this function to do the actual drawing.
|
||
|
// Parameters:
|
||
|
// pDC - A pointer to the chart device context.
|
||
|
// Remarks:
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void ExecuteOverride(CXTPChartDeviceContext* pDC);
|
||
|
|
||
|
protected:
|
||
|
|
||
|
float m_fAngle; //The angle of rotation.
|
||
|
CXTPPoint3d m_ptRotateVector; //The rotation vector.
|
||
|
};
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// This class abstracts a rotation device command, which does translation
|
||
|
// on vertices.This is a kind of CXTPChartDeviceCommand.
|
||
|
// Remarks:
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPChartTranslateDeviceCommand : public CXTPChartDeviceCommand
|
||
|
{
|
||
|
public:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Constructs a CXTPChartTranslateDeviceCommand object.
|
||
|
// Parameters:
|
||
|
// dx - The change in X direction
|
||
|
// dy - The change in Y direction
|
||
|
// dz - The change in Z direction
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPChartTranslateDeviceCommand(double dx, double dy, double dz);
|
||
|
|
||
|
protected:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this function to do the actual drawing.
|
||
|
// Parameters:
|
||
|
// pDC - A pointer to the chart device context.
|
||
|
// Remarks:
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void ExecuteOverride(CXTPChartDeviceContext* pDC);
|
||
|
|
||
|
public:
|
||
|
|
||
|
CXTPChartElement* HitTest(CPoint point, CXTPChartElement* pParent) const;
|
||
|
|
||
|
|
||
|
protected:
|
||
|
|
||
|
double m_dx; //The change in X direction.
|
||
|
double m_dy; //The change in Y direction.
|
||
|
double m_dz; //The change in Z direction.
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
#endif //#if !defined(__XTPCHARTTRANSFORMATIONDEVICECOMMAND_H__)
|