Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/model/tags.h')
-rw-r--r--src/model/tags.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/model/tags.h b/src/model/tags.h
index 586fd21..ff95954 100644
--- a/src/model/tags.h
+++ b/src/model/tags.h
@@ -556,6 +556,63 @@ private:
math::Axis submodel_axis;
};
+/* ---- class Weapon ----------------------------------------------- */
+
+/**
+ * @brief a weapon slot tag
+ * */
+class Weapon : public Tag
+{
+public:
+ /**
+ * @brief default constructor
+ */
+ Weapon();
+
+ /**
+ * @brief copy constructor
+ */
+ Weapon(const Weapon& other);
+
+ /**
+ * @brief destructor
+ */
+ ~Weapon();
+
+ inline const math::Axis &axis() const {
+ return weapon_axis;
+ }
+
+ /// weapon slot radius, default is 0.01f
+ inline float radius() const {
+ return weapon_radius;
+ }
+
+ /// set weapon slot radius
+ inline void set_radius(const float radius) {
+ weapon_radius = radius;
+ }
+
+ /// set weapon slot axis
+ inline void set_axis(const math::Axis& axis) {
+ weapon_axis.assign(axis);
+ }
+
+ /* ---- actors --------------------------------------------- */
+
+ /**
+ * @brief mutable reference to the axis
+ */
+ inline math::Axis& get_axis() {
+ return weapon_axis;
+ }
+
+private:
+ float weapon_radius;
+ math::Axis weapon_axis;
+};
+
+
}
#endif // __INCLUDED_MODEL_PARTS_H__