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

📄 setdest.h

📁 柯老师网站上找到的
💻 H
字号:
#ifndef __setdest_h__#define __setdest_h__/*#include <sys/queue.h>*/#include "../../../config.h"#include "../../../list.h"#ifndef LIST_FIRST#define LIST_FIRST(head)	((head)->lh_first)#endif#ifndef LIST_NEXT#define LIST_NEXT(elm, field)	((elm)->field.le_next)#endifvoid ReadInMovementPattern(void);class vector {public:	vector(double x = 0.0, double y = 0.0, double z = 0.0) {		X = x; Y = y; Z = z;	}	double length() {		return sqrt(X*X + Y*Y + Z*Z);	}	inline void vector::operator=(const vector a) {		X = a.X;		Y = a.Y;		Z = a.Z;	}	inline void vector::operator+=(const vector a) {		X += a.X;		Y += a.Y;		Z += a.Z;	}	inline int vector::operator==(const vector a) {		return (X == a.X && Y == a.Y && Z == a.Z);	}	inline int vector::operator!=(const vector a) {		return (X != a.X || Y != a.Y || Z != a.Z);	}	inline vector operator-(const vector a) {		return vector(X-a.X, Y-a.Y, Z-a.Z);	}	friend inline vector operator*(const double a, const vector b) {		return vector(a*b.X, a*b.Y, a*b.Z);	}	friend inline vector operator/(const vector a, const double b) {		return vector(a.X/b, a.Y/b, a.Z/b);	}	double X;	double Y;	double Z;};class Neighbor {public:	u_int32_t	index;			// index into NodeList	u_int32_t	reachable;		// != 0 --> reachable.	double		time_transition;	// next change};struct setdest {  double time;  double X, Y, Z;  double speed;  LIST_ENTRY(setdest)   traj;};class Node {  friend void ReadInMovementPattern(void);public:	Node(void);	void	Update(void);	void	UpdateNeighbors(void);	void	Dump(void);	double		time_arrival;		// time of arrival at dest	double		time_transition;	// min of all neighbor times	// # of optimal route changes for this node	int		route_changes;        int             link_changes;private:	void	RandomPosition(void);	void	RandomDestination(void);	void	RandomSpeed(void);	u_int32_t	index;                  // unique node identifier	vector		position;		// current position	vector		destination;		// destination	vector		direction;		// computed from pos and dest	double		speed;	double		time_update;		// when pos last updated	static u_int32_t	NodeIndex;	LIST_HEAD(traj, setdest) traj;public:	// An array of NODES neighbors.	Neighbor	*neighbor;};#endif /* __setdest_h__ */

⌨️ 快捷键说明

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