void SphericEmitter::setDirection(const Vector3D& _direction) { tDirection = _direction; computeMatrix(); this->direction = tDirection; // as tDirection was normalized in computeMatrix() notifyForUpdate(); }
void Transformable::setTransformOrientationZ(float angle) { float cosA = std::cos(angle); float sinA = std::sin(angle); local[0] = cosA; local[1] = sinA; local[2] = 0.0f; local[4] = -sinA; local[5] = cosA; local[6] = 0.0f; local[8] = 0.0f; local[9] = 0.0f; local[10] = 1.0f; localIdentity = false; notifyForUpdate(); }
void Transformable::setTransformOrientation(Vector3D axis,float angle) { axis.normalize(); float c = std::cos(angle); float s = std::sin(angle); float a = 1 - c; Vector3D axis2(axis.x * axis.x,axis.y * axis.y,axis.z * axis.z); local[0] = axis2.x + (1 - axis2.x) * c; local[1] = axis.x * axis.y * a + axis.z * s; local[2] = axis.x * axis.z * a - axis.y * s; local[4] = axis.x * axis.y * a - axis.z * s; local[5] = axis2.y + (1 - axis2.y) * c; local[6] = axis.y * axis.z * a + axis.x * s; local[8] = axis.x * axis.z * a + axis.y * s; local[9] = axis.y * axis.z * a - axis.x * s; local[10] = axis2.z + (1 - axis2.z) * c; localIdentity = false; notifyForUpdate(); }
void Transformable::setTransformOrientationLH(Vector3D look,Vector3D up) { look.normalize(); Vector3D side = crossProduct(look,up); side.normalize(); up = crossProduct(side,look); local[0] = side.x; local[1] = side.y; local[2] = side.z; local[4] = up.x; local[5] = up.y; local[6] = up.z; local[8] = look.x; local[9] = look.y; local[10] = look.z; localIdentity = false; notifyForUpdate(); }