19#ifndef HEADER_TRACK_OBJECT_MANAGER_HPP
20#define HEADER_TRACK_OBJECT_MANAGER_HPP
22#include "physics/physical_object.hpp"
23#include "tracks/track_object.hpp"
24#include "utils/ptr_vector.hpp"
59 void add(
const XMLNode &xml_node, scene::ISceneNode* parent,
64 void resetAfterRewind();
66 bool secondary_hits=
true);
67 bool castRay(
const btVector3 &from,
68 const btVector3 &to, btVector3 *hit_point,
69 const Material **material, btVector3 *normal = NULL,
70 bool interpolate_normal =
false)
const;
manages level-of-detail
Definition: lod_node.hpp:50
Definition: material.hpp:48
Utility class to load level-of-detail nodes and library nodes.
Definition: model_definition_loader.hpp:81
Definition: physical_object.hpp:40
Definition: ptr_vector.hpp:44
Definition: track_object_manager.hpp:39
PtrVector< TrackObject > m_all_objects
The list of all track objects.
Definition: track_object_manager.hpp:49
PtrVector< TrackObject, REF > m_driveable_objects
A second list which holds all objects that karts can drive on.
Definition: track_object_manager.hpp:52
void update(float dt)
Updates all track objects.
Definition: track_object_manager.cpp:189
TrackObjectType
The different type of track objects: physical objects, graphical objects (without a physical represen...
Definition: track_object_manager.hpp:46
void updateGraphics(float dt)
Updates all track objects.
Definition: track_object_manager.cpp:176
void init()
Initialises all track objects.
Definition: track_object_manager.cpp:69
void handleExplosion(const Vec3 &pos, const PhysicalObject *mp, bool secondary_hits=true)
Handles an explosion, i.e.
Definition: track_object_manager.cpp:161
void removeObject(TrackObject *who)
Removes the object from the scene graph, bullet, and the list of track objects, and then frees the ob...
Definition: track_object_manager.cpp:288
TrackObject * getTrackObject(const std::string &libraryInstance, const std::string &name)
returns a reference to the track object with a particular ID
Definition: track_object_manager.cpp:122
void reset()
Initialises all track objects.
Definition: track_object_manager.cpp:108
bool castRay(const btVector3 &from, const btVector3 &to, btVector3 *hit_point, const Material **material, btVector3 *normal=NULL, bool interpolate_normal=false) const
Does a raycast against all driveable objects.
Definition: track_object_manager.cpp:228
void add(const XMLNode &xml_node, scene::ISceneNode *parent, ModelDefinitionLoader &model_def_loader, TrackObject *parent_library)
Adds an object to the track object manager.
Definition: track_object_manager.cpp:48
This is a base object for any separate object on the track, which might also have a skeletal animatio...
Definition: track_object.hpp:56
Definition: track.hpp:114
A wrapper around bullets btVector3 to include conventient conversion functions (e....
Definition: vec3.hpp:35
utility class used to parse XML files
Definition: xml_node.hpp:48