00001 00005 /* Copyright © 2009, 2010 James Legg. 00006 This program is free software: you can redistribute it and/or modify 00007 it under the terms of the GNU General Public License as published by 00008 the Free Software Foundation, either version 3 of the License, or 00009 (at your option) any later version. 00010 */ 00011 #ifndef LIBTRACK_TRACK_ATTACHMENT_H_ 00012 #define LIBTRACK_TRACK_ATTACHMENT_H_ 00013 00014 #include <iostream> 00015 #include <LinearMath/btScalar.h> 00016 #include <LinearMath/btTransform.h> 00017 #include "UniqueIdentifier.h" 00018 #include "ClassLoader.h" 00019 #include "NearTrack.h" 00020 00021 namespace Track 00022 { 00023 00029 class TrackAttachment 00030 : public UniqueIdentifier 00031 , public Savable 00032 { 00033 public: 00034 TrackAttachment(std::istream & source); 00035 TrackAttachment(); 00036 virtual ~TrackAttachment(); 00037 00038 btScalar get_t_position() const; 00040 void set_t_position(btScalar value); 00041 00042 btScalar get_lateral_position() const; 00044 void set_lateral_position(btScalar value); 00045 00046 btScalar get_vertical_position() const; 00050 void set_vertical_position(btScalar value); 00051 00054 virtual void add_data(std::ostream & stream) const; 00055 00056 virtual std::string get_class_identifier() const; 00057 00058 std::size_t edge_name; 00063 virtual void draw() const; 00069 void set_global_transform(btTransform pos); 00071 const btTransform & get_global_transform() const; 00072 protected: 00074 btTransform m_global_transform; 00078 btScalar m_t_position; 00083 btScalar m_lateral_position; 00088 btScalar m_vertical_position; 00089 }; 00090 00091 // Add a TrackAttachment or its children to a stream. 00092 std::ostream & operator<<(std::ostream & destination, const TrackAttachment & attachment); 00093 00094 } // namespace Track 00095 00096 00097 #endif // LIBTRACK_TRACK_ATTACHMENT_H_
Generated at Mon Sep 6 00:41:12 2010 by Doxygen version 1.4.7 for Racer version svn335.