}
else
{
- slope = 0;
if(links[0])
{
Vector epp = links[0]->get_snap_node(links[0]->get_link_slot(*this)).position;
else if(links[1])
{
Vector epp = links[1]->get_snap_node(links[1]->get_link_slot(*this)).position;
- position.z = epp.z;
+ position.z = epp.z-slope;
}
}
}
return true;
}
-bool Track::collide_ray(const Vector &start, const Vector &ray) const
-{
- Transform trans = Transform::rotation(-rotation, Vector(0, 0, 1));
- Vector local_start = trans.transform(start-position);
- Vector local_ray = trans.transform(ray);
-
- float width = layout.get_catalogue().get_ballast_profile().get_width();
-
- return type.collide_ray(local_start, local_ray, width);
-}
-
void Track::save(list<DataFile::Statement> &st) const
{
st.push_back((DataFile::Statement("position"), position.x, position.y, position.z));