[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

finding routes in the "outside" world



>>3. We'll handle multibuilding routes (provisionally) by having some 
>>portals connect to the "outside world". A route from NE43 to 37 will look 
>>like NE43->OUTSIDE_WORLD->37.  We need to talk to Vitaly about more 
>>intelligent ways of including his basemap work in this effort.

I currently see two aspects of connecting building portals to the “outside 
world”. First, all the portals that lead outside must be mapped to a set of 
basemap locations. The mapping has to do a lot with the task of orienting 
generated building models at the basemap. We have talked with Mike about this 
and come to the conclusion that while placing buildings 100%-precisely is a 
difficult problem – the base of the model is likely to be somewhat different 
from the corresponding building space on the basemap – placing the buildings 
with some small degree of error should not be difficult. Once all buildings 
are properly placed and oriented at the basemap, the mapping of portals to 
basemap locations will be easy.

Second, the basemap should support the operation of finding a valid and 
reasonably short way from one basemap location to another. Then, by 
incorporating the route from some source office A to the source outside portal 
with the route from the source outside portal to a destination outside portal, 
and the route from the destination outside portal to the destination, we will 
have the complete route from one office to another. There are at least two 
ways to approach the problem of finding a reasonably short route from one 
basemap location to another. One way is to simply use Dijkstra algorithm on 
the graph formed by sidewalk-colored triangles. Another, a more intelligent 
way, is to choose a set of locations on the basemap, precompute paths among 
them, and then run the path-finding algorithm to find the sequence of 
locations from source to destination. Given that there is a comparatively 
small number of outside portals, the second approach should work really well.

I have modified the code so that I can now have several graph layers defined 
on the basemap. For instance, at the bottom layer I have a graph of all 
adjacent triangles on the basemap; at the layer above, I have a graph of all 
adjacent patches; finally, at the topmost layer, I can have a graph of 
connected basemap locations used to find the shortest path from some source to 
destination. I am currently working to make my coloring program robust enough 
to color the whole basemap. As soon as I have the basemap colored, I can 
implement the outside part of the path-searching algorithm. Please let me know 
if you have some thoughts/suggestions.

Vitaly