瀏覽代碼

add setEulerRotation to pair with getEulerRotation for sceneobjects

AzaezelX 2 年之前
父節點
當前提交
061c25686d
共有 1 個文件被更改,包括 13 次插入0 次删除
  1. 13 0
      Engine/source/scene/sceneObject.cpp

+ 13 - 0
Engine/source/scene/sceneObject.cpp

@@ -1531,6 +1531,19 @@ DefineEngineMethod( SceneObject, getEulerRotation, Point3F, (),,
    return euler;
 }
 
+DefineEngineMethod(SceneObject, setEulerRotation, void, (Point3F inRot), ,
+   "set Euler rotation of this object.\n"
+   "@set the orientation of the object in the form of rotations around the "
+   "X, Y and Z axes in degrees.\n")
+{
+   MatrixF curMat = object->getTransform();
+   Point3F curPos = curMat.getPosition();
+   Point3F curScale = curMat.getScale();
+   EulerF inRotRad = inRot * M_PI_F / 180.0;
+   curMat.set(inRotRad, curPos);
+   curMat.scale(curScale);
+   object->setTransform(curMat);
+}
 //-----------------------------------------------------------------------------
 
 DefineEngineMethod( SceneObject, getForwardVector, VectorF, (),,