X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2F3d%2Ftracktype.cpp;fp=source%2F3d%2Ftracktype.cpp;h=e402c89c5f597823e6daabde9943ef27b30d72bb;hb=0db89b665527609582df98854c9e3255d1017811;hp=6dfd2a4f86c166cbb9b336b8cdbcaa42e45ba592;hpb=4056f9df5b947439d682de675cef0a490f2a4e76;p=r2c2.git diff --git a/source/3d/tracktype.cpp b/source/3d/tracktype.cpp index 6dfd2a4..e402c89 100644 --- a/source/3d/tracktype.cpp +++ b/source/3d/tracktype.cpp @@ -12,7 +12,8 @@ namespace R2C2 { TrackType3D::TrackType3D(Catalogue3D &cat3d, const TrackType &tt): catalogue(cat3d), mesh(0), - object(0) + object(0), + own_data(false) { const Catalogue &cat = cat3d.get_catalogue(); const vector &parts = tt.get_parts(); @@ -53,6 +54,8 @@ TrackType3D::TrackType3D(Catalogue3D &cat3d, const TrackType &tt): object = new GL::Object; object->set_mesh(mesh); object->set_technique(&catalogue.get(cat.get_track_technique())); + + own_data = true; } unsigned paths = tt.get_paths(); @@ -76,6 +79,11 @@ TrackType3D::~TrackType3D() { for(vector::iterator i=path_meshes.begin(); i!=path_meshes.end(); ++i) delete *i; + if(own_data) + { + delete object; + delete mesh; + } } const GL::Mesh &TrackType3D::get_path_mesh(unsigned p) const