diff options
author | Stijn Buys <ingar@osirion.org> | 2010-02-23 20:30:57 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2010-02-23 20:30:57 +0000 |
commit | 83757353860fa447c36d4078602efea36d7da94e (patch) | |
tree | d1d72ae7714bce8efb250c03a68f080bb4396415 /src/model/parts.h | |
parent | fe229598d7437a85988eb9255cd0f6bdb6e07cb7 (diff) |
renamed model::Parts to model::Tags
Diffstat (limited to 'src/model/parts.h')
-rw-r--r-- | src/model/parts.h | 468 |
1 files changed, 0 insertions, 468 deletions
diff --git a/src/model/parts.h b/src/model/parts.h deleted file mode 100644 index 4df4672..0000000 --- a/src/model/parts.h +++ /dev/null @@ -1,468 +0,0 @@ -/* - model/classes.h - This file is part of the Osirion project and is distributed under - the terms of the GNU General Public License version 2 -*/ - -#ifndef __INCLUDED_MODEL_PARTS_H__ -#define __INCLUDED_MODEL_PARTS_H__ - -#include "math/axis.h" -#include "math/color.h" -#include "math/vector3f.h" - -namespace model -{ - -/* ---- globals ---------------------------------------------------- */ - -// FIXME this should end up in material.h - -/** - * @brief - * culling parameter values - * Culling is a paremeter used by flares and particles to indicate - * with side of the polygons should be culled during rendering - */ -enum Cull { CullNone = 0, CullBack = 1, CullFront = 2 }; - -/* ---- class Part ------------------------------------------------- */ - -/** - * @brief a special part of a model - */ -class Part -{ -public: - /** - * @brief default constructor - */ - inline Part() : part_location() { - } - - /** - * @brief copy constructor - */ - inline Part(const Part& other) : part_location(other.location()) { - } - - /** - * @brief constructor with location - * @param location location of this part within the parent model - */ - inline Part(const math::Vector3f& location) : part_location(location) { - } - - /* ---- inspectors ----------------------------------------- */ - - /** - * @brief location of this part within the parent model - */ - inline const math::Vector3f& location() const { - return part_location; - } - - /* ---- mutators ------------------------------------------- */ - /** - * @brief set the location within the parent model - */ - inline void set_location(const math::Vector3f& location) { - part_location.assign(location); - } - - /** - * @brief set the location within the parent model - */ - inline void set_location(const float x, const float y, const float z) { - part_location.assign(x, y, z); - } - - /* ---- actors --------------------------------------------- */ - - /** - * @brief mutable reference to the location of this part within the parent model - */ - inline math::Vector3f& get_location() { - return part_location; - } - -private: - math::Vector3f part_location; -}; - -/* ---- class Light ------------------------------------------------ */ - -/// an exterior light -class Light : public Part -{ -public: - /** - * @brief default constructor - */ - Light(); - - /** - * @brief copy constructor - */ - Light(const Light& other); - - /** - * @brief destructor - */ - ~Light(); - - /* ---- inspectors ----------------------------------------- */ - - /// light color - inline const math::Color& color() const { - return light_color; - }; - - /// true if this is a strobe light - inline bool strobe() const { - return light_strobe; - } - - /// true if this light has entity color - inline bool entity() const { - return light_entity; - } - - /// true if this light has engine activation - inline bool engine() const { - return light_engine; - } - - /// size of the light, default is 1.0f - inline float radius() const { - return light_radius; - } - - /// strobe time offset, in seconds - inline float offset() const { - return light_offset; - } - - /// strobe frequency in strobes per second, default is 1.0f - inline float frequency() const { - return light_frequency; - } - - /// fraction a strobe light will be on, default is 0.5f - inline float time() const { - return light_time; - } - - /// flare texture number - inline unsigned int flare() const { - return light_flare; - } - - /// render texture id - inline size_t texture() const { - return light_texture; - } - /* ---- mutators ------------------------------------------- */ - - /** - * @brief set strobe color on or off - */ - inline void set_strobe(const bool strobe) { - light_strobe = strobe; - } - - /** - * @brief set entity color on or off - */ - inline void set_entity(const bool entity) { - light_entity = entity; - } - - /** - * @brief set engine activation on or off - */ - inline void set_engine(const bool engine) { - light_engine = engine; - } - - /** - * @brief set the light radius - */ - inline void set_radius(const float radius) { - light_radius = radius; - } - - /** - * @brief set the light strobe frequency, in strobes per second - */ - inline void set_frequency(const float frequency) { - light_frequency = frequency; - } - - /** - * @brief set the light on time, from 0.0 (always off) to 1.0 (always on) - */ - inline void set_time(const float time) { - light_radius = time; - } - - /** - * @brief set the light strobe time offset, in seconds - */ - inline void set_offset(const float offset) { - light_offset = offset; - } - - /** - * @brief set the flare texture number - */ - inline void set_flare(unsigned int flare) { - light_flare = flare; - } - - /** - * @brief set the render texture id - */ - inline void set_texture(size_t texture) { - light_texture = texture; - } - - /** - * @brief mutable reference to the color - */ - inline math::Color& get_color() { - return light_color; - } - -private: - bool light_strobe; - bool light_engine; - bool light_entity; - - unsigned int light_flare; - - float light_radius; - float light_frequency; - float light_offset; - float light_time; - - math::Color light_color; - - size_t light_texture; -}; - -/* ---- class Flare ------------------------------------------------ */ - -/// a flare is a directional light -class Flare : public Light -{ -public: - Flare(); - - /** - * @brief copy constructor - */ - Flare(const Flare& other); - - ~Flare(); - - /* ---- inspectors ----------------------------------------- */ - - inline const math::Axis &axis() const { - return flare_axis; - } - - inline Cull cull() const { - return flare_cull; - } - - /* ---- mutators ------------------------------------------- */ - - inline void set_cull(const Cull cull) { - flare_cull = cull; - } - - /* ---- actors --------------------------------------------- */ - - /** - * @brief mutable reference to the axis - */ - inline math::Axis& get_axis() { - return flare_axis; - } - -private: - Cull flare_cull; - math::Axis flare_axis; -}; - -/* ---- class Particles -------------------------------------------- */ - -/// a particle system -class Particles : public Part -{ -public: - Particles(); - - Particles(const math::Vector3f & location); - - ~Particles(); - - inline const math::Axis &axis() const { - return particles_axis; - } - - inline const std::string& script() const { - return particles_script; - } - - inline bool entity() const { - return particles_entity; - } - - inline bool engine() const { - return particles_engine; - } - - inline float radius() const { - return particles_radius; - } - - inline Cull cull() const { - return particles_cull; - } - - /* ---- mutators ------------------------------------------- */ - - /** - * @brief set entity color on or off - */ - inline void set_entity(const bool entity) { - particles_entity = entity; - } - - /** - * @brief set engine activation on or off - */ - inline void set_engine(const bool engine) { - particles_engine = engine; - } - - inline void set_radius(const float radius) { - particles_radius = radius; - } - - inline void set_cull(const Cull cull) { - particles_cull = cull; - } - - inline void set_script(const std::string& script) { - particles_script.assign(script); - } - - /* ---- actors --------------------------------------------- */ - - /** - * @brief mutable reference to the axis - */ - inline math::Axis& get_axis() { - return particles_axis; - } - -private: - bool particles_entity; - bool particles_engine; - - Cull particles_cull; - - float particles_radius; - - math::Axis particles_axis; - std::string particles_script; -}; - -/* ---- class Dock ------------------------------------------------- */ - -/// a docking location -class Dock : public Part -{ -public: - Dock(); - - /** - * @brief copy constructor - */ - Dock(const Dock& other); - - ~Dock(); - - /// dock radius, default is 0.01f - inline float radius() const { - return dock_radius; - } - - /// set dock radius - inline void set_radius(const float radius) { - dock_radius = radius; - } - -private: - float dock_radius; -}; - -/* ---- class SubModel --------------------------------------------- */ - -/// a submodel -class SubModel : public Part -{ -public: - SubModel(); - - SubModel(const SubModel& other); - - ~SubModel(); - - inline const std::string& name() const { - return submodel_name; - } - - inline const math::Axis& axis() const { - return submodel_axis; - } - - inline float scale() const { - return submodel_scale; - } - - - inline void set_scale(const float scale) { - submodel_scale = scale; - } - - inline void set_name(const std::string& name) { - submodel_name.assign(name); - } - - inline void set_axis(const math::Axis& axis) { - submodel_axis.assign(axis); - } - - /* ---- actors --------------------------------------------- */ - - /** - * @brief mutable reference to the axis - */ - inline math::Axis& get_axis() { - return submodel_axis; - } - -private: - float submodel_scale; - std::string submodel_name; - math::Axis submodel_axis; -}; - -} - -#endif // __INCLUDED_MODEL_PARTS_H__ - |