ONE源代码分析——movement8之EveningActivityMovement


EveningTrip类:

数据域:

EveningActivityMovement[] eveningActivityNodes:目前使用该trip对象的节点组

int eveningActivityNodesInBuffer:上面节点数组计数

Path path

Coord location

Coord destination

double waitTimeAtEnd


函数域:

构造函数EveningTrip(int nrOfeveningActivityNodes, Coord location)第一个参数表示组中eveningActivity节点个数,eveningActivityNodesInBuffer=0。


boolean addNode(EveningActivityMovement eveningActivityNode)将一个evening activity节点加入组中。


boolean allMembersPresent()检查本组中是否所有节点都找到了去meeting point的路径



这个类是用来控制晚上节点移动的。

EveningActivityControlSystem类:

数据域:

HashMap<Integer, EveningActivityMovement> eveningActivityNodes:哈希表存放使用该移动模型的节点和序号

List<Coord> meetingSpot:用来存放将要访问的节点

EveningTrip[] nextTrip:下一段行程

Random rng

static HashMap<Integer, EveningActivityControlSystem> controlSystem:该移动模型的控制器和相应序号


函数域:

构造函数EveningActivityControlSystem(int id)构造函数中新建一个HashMap,赋给eveningActivityNodes。


static void reset()新建HashMap赋给controlSystem。


void addEveningActivityNode(EveningActivityMovement eveningMovement)向控制系统注册一个eveningActivity节点。将使用eveningMovement移动模型的节点添加到eveningActivityNodes列表中。


void setMeetingSpots(List<Coord> meetingSpots)设置节点之间可以相遇的地点。


EveningTrip getEveningInstructions(int eveningActivityNodeID)获得节点evening activity的活动信息。获取该夜晚活动节点的移动模型,


EveningActivityMovement类:

数据域:

int mode:表示模式,WALKING_TO_MEETING_SPOT_MODE和EVENING_ACTIVITY_MODE

DijkstraPathFinder pathFinder

Coord lastWaypoint

Coord startAtLocation

EveningActivityControlSystem scs

EveningTrip trip

boolean readyToShop

int id

static int nextID = 0:全局变量

int minGroupSize

int maxGroupSize

函数域:

构造函数EveningActivityMovement(Settings settings)由Setting文件创建移动模型默认模式WALKING_TO_MEETING_SPOT_MODE,nrOfMeetingSpots、minGroupSize、maxGroupSize从Settings文件中获取。如果没有指定shoppingSpot,那么从地图上的节点中选取nrOfMeetingSpots个节点,作为meetingSpot。如果指定了地图文件,从文件中读取meetingSpot。id=nextID++,表示从零开始。创建新的eveningActivity控制系统,初始化,将这个Movement添加到控制系统中。


Coord getInitialLocation()从地图上随机获取一个点作为出发地点。


Path getPath()获取路径。如果mode是WALKING,受限找到一条从lastWaypoint到startLocation的路径,然后将lastWaypoint设置为startLocation的值,mode变为EVENING_ACTIVITY_MODE。返回路径;如果mode是EVENING_ACTIVITY_MODE,表示节点已经到达活动地点,readyToShop=true,如果组中所有成员都已经到达



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ymaym

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值