com.jogamp.opengl.math.Quaternion.magnitude()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(2.5k)|赞(0)|评价(0)|浏览(63)

本文整理了Java中com.jogamp.opengl.math.Quaternion.magnitude方法的一些代码示例,展示了Quaternion.magnitude的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Quaternion.magnitude方法的具体详情如下:
包路径:com.jogamp.opengl.math.Quaternion
类名称:Quaternion
方法名:magnitude

Quaternion.magnitude介绍

[英]Return the magnitude of this quaternion, i.e. sqrt( #magnitude())

A magnitude of zero shall equal #isIdentity(), as performed by #normalize().

Implementation Details:

  • returns 0f if #magnitudeSquared() is FloatUtil#isZero(float,float) using FloatUtil#EPSILON
  • returns 1f if #magnitudeSquared() is FloatUtil#isEqual(float,float,float) using FloatUtil#EPSILON
    [中]返回此四元数的大小,即sqrt(#magnity())
    如#normalize()所示,零值应等于#isIdentity()。
    实施细节:
    *如果#magnitudeSquared()为FloatUtil#为零(float,float),则使用FloatUtil#EPSILON返回0f
    *如果#magnitudeSquared()是FloatUtil#isEqual(float,float,float),则使用FloatUtil#EPSILON返回1f

代码示例

代码示例来源: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;
}

相关文章