#pragma once
#include "McGePoint2d.h"
#include "McGePoint3d.h"

class MXGEDLL McGeBoundBlock2d
{
public:
	McGeBoundBlock2d(void);
	virtual ~McGeBoundBlock2d(void);
	
	// -------------------------------------------------------------------------
	// Summary:
	// 		返回边界的左下角和右上角
	// -------------------------------------------------------------------------
	void              getMinMaxPoints  (McGePoint2d& point1,
		McGePoint2d& point2) const;

	McGeBoundBlock2d& set(
		const McGePoint2d& p1,
		const McGePoint2d& p2);

	McGeBoundBlock2d& set(
		const McGePoint3d& p1,
		const McGePoint3d& p2);

	McGeBoundBlock2d& set(
		mxreal dX1,
		mxreal dY1,
		mxreal dX2,
		mxreal dY2);

public:
	McGePoint2d m_minPt;
	McGePoint2d m_maxPt;
};


class MXGEDLL McGeBoundBlock3d
{
public:
	McGeBoundBlock3d(void);
	virtual ~McGeBoundBlock3d(void);

	void              getMinMaxPoints(McGePoint3d& point1,
		McGePoint3d& point2) const;

	McGeBoundBlock3d& set(
		const McGePoint3d& p1,
		const McGePoint3d& p2);

	McGeBoundBlock3d& set(mxreal dX1,
		mxreal dY1,
		mxreal dZ1,
		mxreal dX2,
		mxreal dY2,
		mxreal dZ2);

public:
	McGePoint3d m_minPt;
	McGePoint3d m_maxPt;
};
