X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2F3d%2Ftracktype.cpp;h=47c85ab4dea6f85562346380ccaf86085358f1f7;hb=f8a7788cee0261babfc4c804a58515aad6dfbc3d;hp=8a62175381a66848748bac85c9c73a3e2191c575;hpb=460c64181aca1a134d74cb15ea4ad3bb4f275b60;p=r2c2.git diff --git a/source/3d/tracktype.cpp b/source/3d/tracktype.cpp index 8a62175..47c85ab 100644 --- a/source/3d/tracktype.cpp +++ b/source/3d/tracktype.cpp @@ -16,7 +16,7 @@ using namespace Msp; namespace { -bool compare_z(const R2C2::Point &p1, const R2C2::Point &p2) +bool compare_z(const R2C2::Vector &p1, const R2C2::Vector &p2) { return p1.zxx==lowest.x && i->y>lowest.y)) lowest = *i; @@ -80,13 +80,13 @@ TrackType3D::TrackType3D(Catalogue3D &cat3d, const TrackType &tt): const vector &parts = tt.get_parts(); const Profile &ballast_profile = cat.get_ballast_profile(); - const Point &ballast_min = ballast_profile.get_min_coords(); - const Point &ballast_max = ballast_profile.get_max_coords(); + const Vector &ballast_min = ballast_profile.get_min_coords(); + const Vector &ballast_max = ballast_profile.get_max_coords(); float ballast_h = ballast_max.y-ballast_min.y; const Profile &rail_profile = cat.get_rail_profile(); - const Point &rail_min = rail_profile.get_min_coords(); - const Point &rail_max = rail_profile.get_max_coords(); + const Vector &rail_min = rail_profile.get_min_coords(); + const Vector &rail_max = rail_profile.get_max_coords(); float rail_h = rail_max.y-rail_min.y; float gauge = cat.get_gauge(); @@ -106,14 +106,14 @@ TrackType3D::TrackType3D(Catalogue3D &cat3d, const TrackType &tt): unsigned index = 0; bld.texcoord(0.25, 0.5); for(vector::const_iterator i=parts.begin(); i!=parts.end(); ++i) - build_part(*i, ballast_profile, Point(0, -ballast_min.y), false, bld, index); + build_part(*i, ballast_profile, Vector(0, -ballast_min.y), false, bld, index); bld.texcoord(0.75, 0.5); float y = ballast_h-rail_min.y; for(vector::const_iterator i=parts.begin(); i!=parts.end(); ++i) - build_part(*i, rail_profile, Point(-gauge/2, y), true, bld, index); + build_part(*i, rail_profile, Vector(-gauge/2, y), true, bld, index); for(vector::const_iterator i=parts.begin(); i!=parts.end(); ++i) - build_part(*i, rail_profile, Point(gauge/2, y), false, bld, index); + build_part(*i, rail_profile, Vector(gauge/2, y), false, bld, index); object = new GL::Object; object->set_mesh(mesh); @@ -131,13 +131,13 @@ TrackType3D::TrackType3D(Catalogue3D &cat3d, const TrackType &tt): unsigned index = 0; for(vector::const_iterator j=parts.begin(); j!=parts.end(); ++j) if(j->get_path()==i) - build_part(*j, cat.get_path_profile(), Point(0, ballast_h+1.5*rail_h), false, bld, index); + build_part(*j, cat.get_path_profile(), Vector(0, ballast_h+1.5*rail_h), false, bld, index); } path_meshes.push_back(m); } min_z = max_z = border.front().z; - for(vector::iterator i=border.begin(); i!=border.end(); ++i) + for(vector::iterator i=border.begin(); i!=border.end(); ++i) { min_z = min(min_z, i->z); max_z = max(max_z, i->z); @@ -151,16 +151,16 @@ TrackType3D::~TrackType3D() delete *i; } -void TrackType3D::get_bounds(float angle, Point &minp, Point &maxp) const +void TrackType3D::get_bounds(float angle, Vector &minp, Vector &maxp) const { float c = cos(-angle); float s = sin(-angle); - minp = maxp = Point(); + minp = maxp = Vector(); minp.z = min_z; maxp.z = max_z; - for(vector::const_iterator i=border.begin(); i!=border.end(); ++i) + for(vector::const_iterator i=border.begin(); i!=border.end(); ++i) { float x = c*i->x-s*i->y; float y = s*i->x+c*i->y; @@ -179,7 +179,7 @@ const GL::Mesh &TrackType3D::get_path_mesh(unsigned p) const return *path_meshes[p]; } -void TrackType3D::build_part(const TrackPart &part, const Profile &profile, const Point &offset, bool mirror, GL::MeshBuilder &bld, unsigned &base_index) +void TrackType3D::build_part(const TrackPart &part, const Profile &profile, const Vector &offset, bool mirror, GL::MeshBuilder &bld, unsigned &base_index) { float plen = part.get_length(); unsigned nsegs = (part.is_curved() ? static_cast(plen*32)+1 : 1); @@ -194,14 +194,14 @@ void TrackType3D::build_part(const TrackPart &part, const Profile &profile, cons for(unsigned j=0; j