prototypeVec3d.hh 4.72 KB
Newer Older
1
/*===========================================================================*\
Jan Möbius's avatar
Jan Möbius committed
2 3
*                                                                            *
*                              OpenFlipper                                   *
Jan Möbius's avatar
Jan Möbius committed
4
*      Copyright (C) 2001-2011 by Computer Graphics Group, RWTH Aachen       *
Jan Möbius's avatar
Jan Möbius committed
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
*                           www.openflipper.org                              *
*                                                                            *
*--------------------------------------------------------------------------- *
*  This file is part of OpenFlipper.                                         *
*                                                                            *
*  OpenFlipper is free software: you can redistribute it and/or modify       *
*  it under the terms of the GNU Lesser General Public License as            *
*  published by the Free Software Foundation, either version 3 of            *
*  the License, or (at your option) any later version with the               *
*  following exceptions:                                                     *
*                                                                            *
*  If other files instantiate templates or use macros                        *
*  or inline functions from this file, or you compile this file and          *
*  link it with other files to produce an executable, this file does         *
*  not by itself cause the resulting executable to be covered by the         *
*  GNU Lesser General Public License. This exception does not however        *
*  invalidate any other reasons why the executable file might be             *
*  covered by the GNU Lesser General Public License.                         *
*                                                                            *
*  OpenFlipper 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.                       *
*                                                                            *
*  You should have received a copy of the GNU LesserGeneral Public           *
*  License along with OpenFlipper. If not,                                   *
*  see <http://www.gnu.org/licenses/>.                                       *
*                                                                            *
33 34 35
\*===========================================================================*/

/*===========================================================================*\
Jan Möbius's avatar
Jan Möbius committed
36 37 38 39 40
*                                                                            *
*   $Revision$                                                       *
*   $LastChangedBy$                                                *
*   $Date$                     *
*                                                                            *
41
\*===========================================================================*/
Jan Möbius's avatar
 
Jan Möbius committed
42 43 44 45 46 47 48 49 50 51




//
// C++ Interface: prototypeVec3d
//
// Description: 
//
//
52
// Author: Jan Möbius <moebius@cs.rwth-aachen.de>, (C) 2007
Jan Möbius's avatar
 
Jan Möbius committed
53 54
//

55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
/** \page scripting_vector_type Vector data type for scripting
 *
 *   The vector data type is corresponding to the Vec3d type in C++. It does not support all
 *   of its operations yet. The implementation of the scripting type is done in prototypeVec3d.
 *
 *   You can use the following functions:
 *   \code
 *      var vec = Vector(1,2,3)
 *      var vec2 = Vector(10,20,30)
 *
 *      vec.multiply(0.5)  // Multiply vec with 0.5
 *      vec.add(vec2)      // Add vec2 to vec
 *      vec.sub(vec2)      // Subtract vec2 from vec
 *
 *      print(vec)         // Output the current value: 0.5,1,1.5
 *   \endcode
 *
 */

Jan Möbius's avatar
 
Jan Möbius committed
74 75 76 77 78 79 80
#ifndef PROTOTYPEVEC3D_HH 
#define PROTOTYPEVEC3D_HH 


#include <QtCore/QObject>
#include <QtScript/QtScript>
 
81 82 83 84 85 86 87
/** \class prototypeVec3d
 *
 * This class wraps the Vec3d to the scripting language
 *
 * \ref scripting_vector_type
 *
 */
Jan Möbius's avatar
 
Jan Möbius committed
88 89 90 91 92 93 94
class prototypeVec3d : public QObject , public QScriptable
{
     Q_OBJECT
 
 public:
     prototypeVec3d(QObject *parent = 0);

95
 public slots:
96 97 98 99
     /** \brief Multiplies the given vector with the scalar
      *
      * @param _scalar Scalar value that gets multiplied
      */
100 101
     void multiply(QScriptValue _scalar);

102 103 104 105
     /** \brief Adds another vector to this vector
      *
      * @param _vector Vector that should be added
      */
106 107
     void add(QScriptValue _vector);

108 109 110 111
     /** \brief Subtracts another vector from this vector
      *
      * @param _vector Vector that should be subtracted
      */
112 113
     void sub(QScriptValue _vector);

Jan Möbius's avatar
 
Jan Möbius committed
114 115 116 117 118 119 120
 public Q_SLOTS:
     QString toString() const;

};
 
      
#endif // PROTOTYPEVEC3D_HH
121