/************************************************************************ ** ** @file vvector3dproperty.h ** @author hedgeware ** @date ** ** @brief ** @copyright ** All rights reserved. This program and the accompanying materials ** are made available under the terms of the GNU Lesser General Public License ** (LGPL) version 2.1 which accompanies this distribution, and is available at ** http://www.gnu.org/licenses/lgpl-2.1.html ** ** This library is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ** Lesser General Public License for more details. ** *************************************************************************/ #ifndef VVECTOR3DPROPERTY_H #define VVECTOR3DPROPERTY_H #include "../../vpropertyexplorer_global.h" #include "../../vproperty.h" namespace VPE { struct VPROPERTYEXPLORERSHARED_EXPORT Vector3D //-V690 { public: Vector3D() :X(0), Y(0), Z(0) {} Vector3D(const Vector3D& other) :X(other.X), Y(other.Y), Z(other.Z) {} ~Vector3D() {} float X, Y, Z; }; /* } Q_DECLARE_METATYPE(QPE::Vector3D) // todo */ class VPROPERTYEXPLORERSHARED_EXPORT QVector3DProperty : public VProperty { Q_OBJECT public: explicit QVector3DProperty(const QString& name); virtual ~QVector3DProperty() Q_DECL_OVERRIDE {} //! Get the data how it should be displayed virtual QVariant data (int column = DPC_Name, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE; //! Returns item flags Qt::ItemFlags flags(int column = DPC_Name) const; //! Returns the Vector3d virtual Vector3D getVector() const; //! Sets the Vector3d virtual void setVector(const Vector3D& vect); //! Sets the Vector3d virtual void setVector(float x, float y, float z); //! Returns a string containing the type of the property virtual QString type() const Q_DECL_OVERRIDE; //! Clones this property //! \param include_children Indicates whether to also clone the children //! \param container If a property is being passed here, no new VProperty is being created but instead it is tried //! to fill all the data into container. This can also be used when subclassing this function. //! \return Returns the newly created property (or container, if it was not NULL) virtual VProperty* clone(bool include_children = true, VProperty* container = NULL) const Q_DECL_OVERRIDE; //! Sets the value of the property virtual void setValue(const QVariant& value) Q_DECL_OVERRIDE; //! Returns the value of the property as a QVariant virtual QVariant getValue() const Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(QVector3DProperty) }; } #endif // VVECTOR3DPROPERTY_H