- const vector<Endpoint> &eps = type.get_endpoints();
- if(i>=eps.size())
- throw InvalidParameterValue("Endpoint index out of range");
-
- const Endpoint &ep = eps[i];
-
- if(ep.paths&(1<<path))
- {
- // Find the other endpoint for this path
- for(unsigned j=0; j<eps.size(); ++j)
- if((eps[j].paths&(1<<path)) && j!=i)
- return j;
- }
- else
- {
- // Find an endpoint that's connected to this one and has the requested path
- for(unsigned j=0; j<eps.size(); ++j)
- if((eps[j].paths&(1<<path)) && (eps[j].paths&ep.paths))
- return j;
- }
-
- return -1;
-}
-
-Point Track::get_point(unsigned epi, unsigned path, float d) const
-{
- const vector<Endpoint> &eps = type.get_endpoints();
- if(epi>=eps.size())
- throw InvalidParameterValue("Endpoint index out of range");
-
- float x = eps[epi].pos.x;
- float y = eps[epi].pos.y;