X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2F3d%2Fpath.h;h=ceeb178ce04c6b11fa67e63792ce4f054fb70ba3;hb=28947c087bd2d05c1850e320844f2e33fc0fc253;hp=dd071f7d42053031c393c3b93cda52caffb8f986;hpb=d27edb207810f0b4e44be8c3632d421faa5fed80;p=r2c2.git diff --git a/source/3d/path.h b/source/3d/path.h index dd071f7..ceeb178 100644 --- a/source/3d/path.h +++ b/source/3d/path.h @@ -1,27 +1,23 @@ -/* $Id$ - -This file is part of the MSP Märklin suite -Copyright © 2010 Mikkosoft Productions, Mikko Rasa -Distributed under the GPL -*/ - -#ifndef MARKLIN3D_PATH_H_ -#define MARKLIN3D_PATH_H_ +#ifndef R2C2_3D_PATH_H_ +#define R2C2_3D_PATH_H_ #include #include #include +#include "utility.h" -namespace Marklin { +namespace R2C2 { class Track3D; -class Path3D: public Msp::GL::Renderable +class Path3D: public Utility3D, public Msp::GL::Renderable, public sigc::trackable { private: const Track3D &track; - unsigned paths; + int path; + int side; bool automatic; + const Msp::GL::Mesh *mesh; Msp::GL::Color color; float z_offs; @@ -30,14 +26,20 @@ public: ~Path3D(); void set_automatic(); - void set_path(unsigned); - void set_mask(unsigned); + void set_path(int); + void set_side(int); void set_color(const Msp::GL::Color &); void set_layer(float); +private: + void path_changed(unsigned); + void update_mesh(); + +public: + virtual long get_instance_key() const; - virtual void render(const Msp::GL::Tag &) const; + virtual void render(Msp::GL::Renderer &, const Msp::GL::Tag &) const; }; -} // namespace Marklin +} // namespace R2C2 #endif