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

📄 tfunction.h

📁 tolua++是一个对lua进行封装调用的工具
💻 H
字号:
#ifndef tfunction_h#define tfunction_h#include <stdio.h>#include <string.h>typedef enum { FIRST = 1,	SECOND = 2} Order;class Point{          	char m_s[64]; float m_x;	float m_y;public:	enum Error {		SUCCESS = 0,		ERROR = 1	};	Point (float x=0, float y=0)	: m_x(x), m_y(y)	{	}	virtual ~Point ()	{	}	void set (float x, float y)	{		m_x = x, m_y = y;	}	void set (float v[2]=0)	{		m_x = v[0], m_y=v[1];	}	void setpointer (Point* p)	{		*this = *p;	}	void setref (Point& p)	{		*this = p;	}	void setvalue (Point p)	{		*this = p;	}	void setconst (const Point* p)	{		*this = *p;	}	void setname (const char* s)	{		strncpy(m_s,s,63);	}	void get (float* x, float* y) const	{		*x = m_x, *y = m_y;	}	void get (float v[2]) const	{		v[0] = m_x, v[1] = m_y;	}	Point* getpointer ()	{		return this;	}	Point& getref ()	{		return *this;	}	Point getvalue ()	{		return *this;	}	const Point* getconst () const	{		return this;	}	const char* getname () const	{		return m_s;	}	Point operator+ (const Point& p) const	{		return Point(m_x+p.m_x,m_y+p.m_y);	}	Point operator- (const Point& p) const	{		return Point(m_x-p.m_x,m_y-p.m_y);	}	Point operator* (const Point& p) const	{		return Point(m_x*p.m_x,m_y*p.m_y);	}	Point operator/ (float n) const	{		return Point(m_x/n,m_y/n);	}	bool operator< (const Point& p) const	{		if (m_x < p.m_x) return true;		else if (m_x > p.m_x) return false;		else return m_y < p.m_y;	}	bool operator<= (const Point& p) const	{		return operator<(p) || operator==(p);	}	bool operator== (const Point& p) const	{		return m_x==p.m_x && m_y==p.m_y;	} float operator[] (int i) const	{		return (i==0) ? m_x : m_y;	}	float& operator[] (int i)	{		return (i==0) ? m_x : m_y;	}	static Error echo (Error e)	{		return e;	}};inline Point add (const Point& p1, const Point& p2){	return p1+p2;}inline Point sub (const Point& p1, const Point& p2){	return p1-p2;}inline Point mult (const Point& p1, const Point& p2){	return p1*p2;}inline Point div (const Point& p1, float n){	return p1/n;}inline void getpoint (const Point* p, float* x, float* y){	p->get(x,y);}inline void setpoint (Point* p, float x=0, float y=0){	p->set(x,y);}inline	Point average (int n, Point v[]){	Point p(0,0);	for (int i=0; i<n; ++i)		p = p+v[i];	return p/n;}inline	Point averagepointer (int n, Point* v[]){	Point p(0,0);	for (int i=0; i<n; ++i)		p = p+(*v[i]);	return p/n;}inline	void copyvector (int n, const Point v[], Point u[]){	for (int i=0; i<n; ++i)		u[i] = v[i];}inline Order invert (Order o){	if (o==FIRST)		return SECOND;	else		return FIRST;}class ColorPoint : public Point   //tolua_export{                                 //tolua_export float r, g, b;public://tolua_begin ColorPoint (float px, float py, float cr=0.0f, float cg=0.0f, float cb=0.0f) : Point(px,py), r(cr), g(cg), b(cb) { } virtual ~ColorPoint () { } virtual void getcolor (float* red, float *green, float *blue) const	{		*red = r;		*green = g;		*blue = b;	} static ColorPoint* MakeRed (float x, float y) {  return new ColorPoint(x,y,1,0,0); }};//tolua_end#endif

⌨️ 快捷键说明

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