SceneGraph::~SceneGraph() { Node *node=getNodes(); while (node) { delete node; node = getNodes(); } Route *route=getRoutes(); while (route) { Route *nextRoute=route->next(); delete route; route = nextRoute; } delete mBackgroundNodeVector; delete mFogNodeVector; delete mNavigationInfoNodeVector; delete mViewpointNodeVector; delete mDefaultBackgroundNode; delete mDefaultFogNode; delete mDefaultNavigationInfoNode; delete mDefaultViewpointNode; #ifdef SUPPORT_URL delete mUrl; #endif #ifdef SUPPORT_JSAI DeleteJavaVM(); #endif }
int getRoutes(int x, int y) { if (numRoutes[x][y] != -1) return numRoutes[x][y]; int total = 0; for(int i=0;i<numCities;i++) { if (directDistance[x][i] != 0 && directDistance[x][i] + minDistance[i][y] == minDistance[x][y]) total += numDirectRoutes[x][i] * getRoutes(i, y); } return (numRoutes[x][y] = total); }
void calculateRoutes(void) { for(int i=0;i<numCities;i++) for(int j=0;j<numCities;j++) numRoutes[i][j] = -1; for(int i=0;i<numCities;i++) numRoutes[i][i] = 1; for(int i=0;i<numCities;i++) for(int j=0;j<numCities;j++) getRoutes(i, j); }