本文整理了Java中com.jogamp.opengl.math.Quaternion.setIdentity
方法的一些代码示例,展示了Quaternion.setIdentity
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Quaternion.setIdentity
方法的具体详情如下:
包路径:com.jogamp.opengl.math.Quaternion
类名称:Quaternion
方法名:setIdentity
[英]Set this quaternion to identity (x=0,y=0,z=0,w=1)
[中]将此四元数设置为标识(x=0,y=0,z=0,w=1)
代码示例来源:origin: net.clearvolume/cleargl
public ArcBall() {
mStartVector = new float[3];
mEndVector = new float[3];
mRotationQuaternion.setIdentity();
}
代码示例来源:origin: ch.unibas.cs.gravis/scalismo-native-stub
/**
* Normalize a quaternion required if to be used as a rotational quaternion.
* <p>
* Implementation Details:
* <ul>
* <li> {@link #setIdentity()} if {@link #magnitude()} is {@link FloatUtil#isZero(float, float) is zero} using {@link FloatUtil#EPSILON epsilon}</li>
* </ul>
* </p>
* @return this quaternion for chaining.
*/
public final Quaternion normalize() {
final float norm = magnitude();
if ( FloatUtil.isZero(norm, FloatUtil.EPSILON) ) {
setIdentity();
} else {
final float invNorm = 1f/norm;
w *= invNorm;
x *= invNorm;
y *= invNorm;
z *= invNorm;
}
return this;
}
代码示例来源:origin: org.jogamp.jogl/jogl-all-noawt
/**
* Normalize a quaternion required if to be used as a rotational quaternion.
* <p>
* Implementation Details:
* <ul>
* <li> {@link #setIdentity()} if {@link #magnitude()} is {@link FloatUtil#isZero(float, float) is zero} using {@link FloatUtil#EPSILON epsilon}</li>
* </ul>
* </p>
* @return this quaternion for chaining.
*/
public final Quaternion normalize() {
final float norm = magnitude();
if ( FloatUtil.isZero(norm, FloatUtil.EPSILON) ) {
setIdentity();
} else {
final float invNorm = 1f/norm;
w *= invNorm;
x *= invNorm;
y *= invNorm;
z *= invNorm;
}
return this;
}
代码示例来源:origin: org.jogamp.jogl/jogl
/**
* Normalize a quaternion required if to be used as a rotational quaternion.
* <p>
* Implementation Details:
* <ul>
* <li> {@link #setIdentity()} if {@link #magnitude()} is {@link FloatUtil#isZero(float, float) is zero} using {@link FloatUtil#EPSILON epsilon}</li>
* </ul>
* </p>
* @return this quaternion for chaining.
*/
public final Quaternion normalize() {
final float norm = magnitude();
if ( FloatUtil.isZero(norm, FloatUtil.EPSILON) ) {
setIdentity();
} else {
final float invNorm = 1f/norm;
w *= invNorm;
x *= invNorm;
y *= invNorm;
z *= invNorm;
}
return this;
}
代码示例来源:origin: ch.unibas.cs.gravis/scalismo-native-stub
/***
* Initialize this quaternion with given normalized axis vector and rotation angle
* <p>
* Implementation Details:
* <ul>
* <li> {@link #setIdentity()} if axis is {@link FloatUtil#isZero(float, float) is zero} using {@link FloatUtil#EPSILON epsilon}</li>
* </ul>
* </p>
* @param angle rotation angle (rads)
* @param vector axis vector normalized
* @return this quaternion for chaining.
*
* @see <a href="http://web.archive.org/web/20041029003853/http://www.j3d.org/matrix_faq/matrfaq_latest.html#Q56">Matrix-FAQ Q56</a>
* @see #toAngleAxis(float[])
*/
public final Quaternion setFromAngleNormalAxis(final float angle, final float[] vector) {
if ( VectorUtil.isVec3Zero(vector, 0, FloatUtil.EPSILON) ) {
setIdentity();
} else {
final float halfangle = angle * 0.5f;
final float sin = FloatUtil.sin(halfangle);
x = vector[0] * sin;
y = vector[1] * sin;
z = vector[2] * sin;
w = FloatUtil.cos(halfangle);
}
return this;
}
代码示例来源:origin: ch.unibas.cs.gravis/scalismo-native-stub
final float factor = VectorUtil.normVec3(v1) * VectorUtil.normVec3(v2);
if ( FloatUtil.isZero(factor, FloatUtil.EPSILON ) ) {
return setIdentity();
} else {
final float dot = VectorUtil.dotVec3(v1, v2) / factor; // normalize
代码示例来源:origin: org.jogamp.jogl/jogl
/***
* Initialize this quaternion with given normalized axis vector and rotation angle
* <p>
* Implementation Details:
* <ul>
* <li> {@link #setIdentity()} if axis is {@link FloatUtil#isZero(float, float) is zero} using {@link FloatUtil#EPSILON epsilon}</li>
* </ul>
* </p>
* @param angle rotation angle (rads)
* @param vector axis vector normalized
* @return this quaternion for chaining.
*
* @see <a href="http://web.archive.org/web/20041029003853/http://www.j3d.org/matrix_faq/matrfaq_latest.html#Q56">Matrix-FAQ Q56</a>
* @see #toAngleAxis(float[])
*/
public final Quaternion setFromAngleNormalAxis(final float angle, final float[] vector) {
if ( VectorUtil.isVec3Zero(vector, 0, FloatUtil.EPSILON) ) {
setIdentity();
} else {
final float halfangle = angle * 0.5f;
final float sin = FloatUtil.sin(halfangle);
x = vector[0] * sin;
y = vector[1] * sin;
z = vector[2] * sin;
w = FloatUtil.cos(halfangle);
}
return this;
}
代码示例来源:origin: org.jogamp.jogl/jogl-all-noawt
/***
* Initialize this quaternion with given normalized axis vector and rotation angle
* <p>
* Implementation Details:
* <ul>
* <li> {@link #setIdentity()} if axis is {@link FloatUtil#isZero(float, float) is zero} using {@link FloatUtil#EPSILON epsilon}</li>
* </ul>
* </p>
* @param angle rotation angle (rads)
* @param vector axis vector normalized
* @return this quaternion for chaining.
*
* @see <a href="http://web.archive.org/web/20041029003853/http://www.j3d.org/matrix_faq/matrfaq_latest.html#Q56">Matrix-FAQ Q56</a>
* @see #toAngleAxis(float[])
*/
public final Quaternion setFromAngleNormalAxis(final float angle, final float[] vector) {
if ( VectorUtil.isVec3Zero(vector, 0, FloatUtil.EPSILON) ) {
setIdentity();
} else {
final float halfangle = angle * 0.5f;
final float sin = FloatUtil.sin(halfangle);
x = vector[0] * sin;
y = vector[1] * sin;
z = vector[2] * sin;
w = FloatUtil.cos(halfangle);
}
return this;
}
代码示例来源:origin: ch.unibas.cs.gravis/scalismo-native-stub
final float factor = VectorUtil.normVec3(v1) * VectorUtil.normVec3(v2);
if ( FloatUtil.isZero(factor, FloatUtil.EPSILON ) ) {
return setIdentity();
} else {
final float dot = VectorUtil.dotVec3(v1, v2) / factor; // normalize
代码示例来源:origin: org.jogamp.jogl/jogl-all-noawt
final float factor = VectorUtil.normVec3(v1) * VectorUtil.normVec3(v2);
if ( FloatUtil.isZero(factor, FloatUtil.EPSILON ) ) {
return setIdentity();
} else {
final float dot = VectorUtil.dotVec3(v1, v2) / factor; // normalize
代码示例来源:origin: org.jogamp.jogl/jogl
final float factor = VectorUtil.normVec3(v1) * VectorUtil.normVec3(v2);
if ( FloatUtil.isZero(factor, FloatUtil.EPSILON ) ) {
return setIdentity();
} else {
final float dot = VectorUtil.dotVec3(v1, v2) / factor; // normalize
代码示例来源:origin: org.jogamp.jogl/jogl
final float factor = VectorUtil.normVec3(v1) * VectorUtil.normVec3(v2);
if ( FloatUtil.isZero(factor, FloatUtil.EPSILON ) ) {
return setIdentity();
} else {
final float dot = VectorUtil.dotVec3(v1, v2) / factor; // normalize
代码示例来源:origin: org.jogamp.jogl/jogl-all-noawt
final float factor = VectorUtil.normVec3(v1) * VectorUtil.normVec3(v2);
if ( FloatUtil.isZero(factor, FloatUtil.EPSILON ) ) {
return setIdentity();
} else {
final float dot = VectorUtil.dotVec3(v1, v2) / factor; // normalize
代码示例来源:origin: org.jogamp.jogl/jogl
return setIdentity();
} else {
float angle = headingY * 0.5f;
代码示例来源:origin: org.jogamp.jogl/jogl-all-noawt
return setIdentity();
} else {
float angle = headingY * 0.5f;
代码示例来源:origin: ch.unibas.cs.gravis/scalismo-native-stub
return setIdentity();
} else {
float angle = headingY * 0.5f;
代码示例来源:origin: net.clearvolume/cleargl
public Quaternion drag(float p2DPointX, float p2DPointY) {
// Map the point to the sphere
this.mapToSphere(p2DPointX, p2DPointY, mEndVector);
final float[] lPerp = new float[3];
// Compute the vector perpendicular to the begin and end vectors
GLMatrix.cross(lPerp, mStartVector, mEndVector);
final float lLength = GLMatrix.norm(lPerp);
// Compute the length of the perpendicular vector
if (lLength > Epsilon) // if its non-zero
{
// We're ok, so return the perpendicular vector as the transform
// after
// all
mRotationQuaternion.setX(lPerp[0]);
mRotationQuaternion.setY(lPerp[1]);
mRotationQuaternion.setZ(lPerp[2]);
// In the quaternion values, w is cosine (theta / 2), where theta is
// rotation angle
mRotationQuaternion.setW(GLMatrix.dot(mStartVector, mEndVector));
} else
// if its zero
{
// The begin and end vectors coincide, so return an identity
// transform
mRotationQuaternion.setIdentity();
}
mResultQuaternion.set(mRotationQuaternion);
mResultQuaternion.mult(mCurrentQuaternion);
return mResultQuaternion;
}
内容来源于网络,如有侵权,请联系作者删除!