⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 coord.h

📁 《3D游戏引擎设计》的源码
💻 H
字号:
#ifndef COORD_H
#define COORD_H

#include <stdarg.h>
#include <iostream.h>

class mgcCoordinate
{
public:
	// constructors and destructor
	mgcCoordinate (int _dimensions=0, const int* initial=0);
	mgcCoordinate (int _dimensions, int initial_all);
	mgcCoordinate (int _dimensions, int initial0, int initial1, ...);
	mgcCoordinate (const mgcCoordinate& coordinate);
	~mgcCoordinate ()
		{ delete[] component; }

	// data access
	int Dimensions () const
		{ return dimensions; }
	int* Components () const
		{ return component; }
	int& operator[] (int d) const;

	// assignments
	mgcCoordinate& operator= (const mgcCoordinate& coordinate);
	mgcCoordinate& operator= (int value);

	// comparisons
	int operator== (const mgcCoordinate& coordinate) const;
	int operator!= (const mgcCoordinate& coordinate) const
		{ return !(*this == coordinate); }
	int operator< (const mgcCoordinate& coordinate) const;
	int operator<= (const mgcCoordinate& coordinate) const;
	int operator> (const mgcCoordinate& coordinate) const;
	int operator>= (const mgcCoordinate& coordinate) const;

	// arithmetic updates
	mgcCoordinate& operator+= (const mgcCoordinate& coordinate);
	mgcCoordinate& operator-= (const mgcCoordinate& coordinate);
	mgcCoordinate& operator+= (int value);
	mgcCoordinate& operator-= (int value);
	mgcCoordinate& operator*= (int value);
	mgcCoordinate& operator/= (int value);

	// arithmetic operations
	mgcCoordinate operator+ (const mgcCoordinate& coordinate);
	mgcCoordinate operator- (const mgcCoordinate& coordinate);
	mgcCoordinate operator+ (int value);
	mgcCoordinate operator- (int value);
	mgcCoordinate operator* (int value);
	mgcCoordinate operator/ (int value);
	mgcCoordinate operator- ();
	friend mgcCoordinate operator* (int value, mgcCoordinate& coordinate);

	friend ostream& operator<< (ostream& ostr, const mgcCoordinate&);

private:
	int dimensions;
	int* component;

	void Create (int _dimensions, const int* initial);

// error handling
public:
	static int verbose;
	static unsigned error;
	static void Report (ostream& ostr);
private:
	static const unsigned allocation_failed;
	static const unsigned zero_dimension;
	static const unsigned invalid_dimension;
	static const unsigned incompatible_dimensions;
	static const char* message[4];
	static int Number (unsigned single_error);
	static void Report (unsigned single_error);
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -