Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jun 14, 2009, 11:24:42 AM (16 years ago)
Author:
rgrieder
Message:

Moved orxonox::TransformSpace::Enum to WorldEntity::TransformSpace and asserted the conversions with a BOOST_STATIC_ASSERT (avoids unnecessary switch statements).
Also

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/pch/src/orxonox/objects/worldentities/WorldEntity.h

    r3077 r3163  
    7575
    7676        public:
     77            // Define our own transform space enum to avoid Ogre includes here
     78            /**
     79            @brief
     80                Enumeration denoting the spaces which a transform can be relative to.
     81            */
     82            enum TransformSpace
     83            {
     84                //! Transform is relative to the local space
     85                Local,
     86                //! Transform is relative to the space of the parent node
     87                Parent,
     88                //! Transform is relative to world space
     89                World
     90            };
     91
     92        public:
    7793            WorldEntity(BaseObject* creator);
    7894            virtual ~WorldEntity();
     
    97113            const Vector3& getWorldPosition() const;
    98114
    99             void translate(const Vector3& distance, TransformSpace::Enum relativeTo = TransformSpace::Parent);
    100             inline void translate(float x, float y, float z, TransformSpace::Enum relativeTo = TransformSpace::Parent)
     115            void translate(const Vector3& distance, TransformSpace relativeTo = WorldEntity::Parent);
     116            inline void translate(float x, float y, float z, TransformSpace relativeTo = WorldEntity::Parent)
    101117                { this->translate(Vector3(x, y, z), relativeTo); }
    102118
     
    114130            const Quaternion& getWorldOrientation() const;
    115131
    116             void rotate(const Quaternion& rotation, TransformSpace::Enum relativeTo = TransformSpace::Local);
    117             inline void rotate(const Vector3& axis, const Degree& angle, TransformSpace::Enum relativeTo = TransformSpace::Local)
     132            void rotate(const Quaternion& rotation, TransformSpace relativeTo = WorldEntity::Local);
     133            inline void rotate(const Vector3& axis, const Degree& angle, TransformSpace relativeTo = WorldEntity::Local)
    118134                { this->rotate(Quaternion(angle, axis), relativeTo); }
    119135
    120             inline void yaw(const Degree& angle, TransformSpace::Enum relativeTo = TransformSpace::Local)
     136            inline void yaw(const Degree& angle, TransformSpace relativeTo = WorldEntity::Local)
    121137                { this->rotate(Quaternion(angle, Vector3::UNIT_Y), relativeTo); }
    122             inline void pitch(const Degree& angle, TransformSpace::Enum relativeTo = TransformSpace::Local)
     138            inline void pitch(const Degree& angle, TransformSpace relativeTo = WorldEntity::Local)
    123139                { this->rotate(Quaternion(angle, Vector3::UNIT_X), relativeTo); }
    124             inline void roll(const Degree& angle, TransformSpace::Enum relativeTo = TransformSpace::Local)
     140            inline void roll(const Degree& angle, TransformSpace relativeTo = WorldEntity::Local)
    125141                { this->rotate(Quaternion(angle, Vector3::UNIT_Z), relativeTo); }
    126142
    127             void lookAt(const Vector3& target, TransformSpace::Enum relativeTo = TransformSpace::Parent, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z);
    128             void setDirection(const Vector3& direction, TransformSpace::Enum relativeTo = TransformSpace::Local, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z);
    129             inline void setDirection(float x, float y, float z, TransformSpace::Enum relativeTo = TransformSpace::Local, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z)
     143            void lookAt(const Vector3& target, TransformSpace relativeTo = WorldEntity::Parent, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z);
     144            void setDirection(const Vector3& direction, TransformSpace relativeTo = WorldEntity::Local, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z);
     145            inline void setDirection(float x, float y, float z, TransformSpace relativeTo = WorldEntity::Local, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z)
    130146                { this->setDirection(Vector3(x, y, z), relativeTo, localDirectionVector); }
    131147
Note: See TracChangeset for help on using the changeset viewer.