Class Vec3

All Implemented Interfaces:
Proxy

@Generated("org.javagi.JavaGI") public class Vec3 extends ProxyInstance

A structure capable of holding a vector with three dimensions: x, y, and z.

The contents of the graphene_vec3_t structure are private and should never be accessed directly.

  • Constructor Summary

    Constructors
    Constructor
    Description
    Allocate a new Vec3.
    Vec3(Arena arena)
    Allocate a new Vec3.
    Create a Vec3 proxy instance for the provided memory address.
    Vec3(Simd4F value)
    Allocate a new Vec3 with the fields set to the provided values.
    Vec3(Simd4F value, Arena arena)
    Allocate a new Vec3 with the fields set to the provided values.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(Vec3 b, Vec3 res)
    Adds each component of the two given vectors.
    static Vec3
    Allocates a new graphene_vec3_t structure.
    void
    cross(Vec3 b, Vec3 res)
    Computes the cross product of the two given vectors.
    void
    divide(Vec3 b, Vec3 res)
    Divides each component of the first operand this Vec3 by the corresponding component of the second operand b, and places the results into the vector res.
    float
    dot(Vec3 b)
    Computes the dot product of the two given vectors.
    boolean
    equal(Vec3 v2)
    Checks whether the two given graphene_vec3_t are equal.
    void
    Frees the resources allocated by this Vec3
    The memory layout of the native struct.
    static @Nullable Type
    Get the GType of the Vec3 class.
    float
    Retrieves the first component of the given vector v.
    void
    getXy(Vec2 res)
    Creates a graphene_vec2_t that contains the first and second components of the given graphene_vec3_t.
    void
    getXy0(Vec3 res)
    Creates a graphene_vec3_t that contains the first two components of the given graphene_vec3_t, and the third component set to 0.
    void
    Converts a graphene_vec3_t in a graphene_vec4_t using 0.0 as the value for the fourth component of the resulting vector.
    void
    Converts a graphene_vec3_t in a graphene_vec4_t using 1.0 as the value for the fourth component of the resulting vector.
    void
    getXyzw(float w, Vec4 res)
    Converts a graphene_vec3_t in a graphene_vec4_t using w as the value of the fourth component of the resulting vector.
    float
    Retrieves the second component of the given vector v.
    float
    Retrieves the third component of the given vector v.
    init(float x, float y, float z)
    Initializes a graphene_vec3_t using the given values.
    initFromFloat(@Nullable float @Nullable [] src)
    Initializes a graphene_vec3_t with the values from an array.
    Initializes a graphene_vec3_t with the values of another graphene_vec3_t.
    void
    interpolate(Vec3 v2, double factor, Vec3 res)
    Linearly interpolates this Vec3 and v2 using the given factor.
    float
    Retrieves the length of the given vector v.
    void
    max(Vec3 b, Vec3 res)
    Compares each component of the two given vectors and creates a vector that contains the maximum values.
    void
    min(Vec3 b, Vec3 res)
    Compares each component of the two given vectors and creates a vector that contains the minimum values.
    void
    multiply(Vec3 b, Vec3 res)
    Multiplies each component of the two given vectors.
    boolean
    near(Vec3 v2, float epsilon)
    Compares the two given graphene_vec3_t vectors and checks whether their values are within the given epsilon.
    void
    negate(Vec3 res)
    Negates the given graphene_vec3_t.
    void
    Normalizes the given graphene_vec3_t.
    static Vec3
    one()
    Provides a constant pointer to a vector with three components, all sets to 1.
    @Nullable Simd4F
    Read the value of the field value.
    void
    scale(float factor, Vec3 res)
    Multiplies all components of the given vector with the given scalar factor.
    void
    subtract(Vec3 b, Vec3 res)
    Subtracts from each component of the first operand this Vec3 the corresponding component of the second operand b and places each result into the components of res.
    void
    toFloat(@Nullable Out<float[]> dest)
    Copies the components of a graphene_vec3_t into the given array.
    void
    writeValue(@Nullable Simd4F value)
    Write a value in the field value.
    static Vec3
    Provides a constant pointer to a vector with three components with values set to (1, 0, 0).
    static Vec3
    Provides a constant pointer to a vector with three components with values set to (0, 1, 0).
    static Vec3
    Provides a constant pointer to a vector with three components with values set to (0, 0, 1).
    static Vec3
    Provides a constant pointer to a vector with three components, all sets to 0.

    Methods inherited from class ProxyInstance

    equals, handle, hashCode

    Methods inherited from class Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Vec3

      public Vec3(MemorySegment address)
      Create a Vec3 proxy instance for the provided memory address.
      Parameters:
      address - the memory address of the native object
    • Vec3

      public Vec3(Arena arena)
      Allocate a new Vec3.
      Parameters:
      arena - to control the memory allocation scope
    • Vec3

      public Vec3()
      Allocate a new Vec3. The memory is allocated with Arena.ofAuto().
    • Vec3

      public Vec3(Simd4F value, Arena arena)
      Allocate a new Vec3 with the fields set to the provided values.
      Parameters:
      value - value for the field value
      arena - to control the memory allocation scope
    • Vec3

      public Vec3(Simd4F value)
      Allocate a new Vec3 with the fields set to the provided values. The memory is allocated with Arena.ofAuto().
      Parameters:
      value - value for the field value
  • Method Details

    • getType

      public static @Nullable Type getType()
      Get the GType of the Vec3 class.
      Returns:
      the GType
    • getMemoryLayout

      public static MemoryLayout getMemoryLayout()
      The memory layout of the native struct.
      Returns:
      the memory layout
    • readValue

      public @Nullable Simd4F readValue()
      Read the value of the field value.
      Returns:
      The value of the field value
    • writeValue

      public void writeValue(@Nullable Simd4F value)
      Write a value in the field value.
      Parameters:
      value - The new value for the field value
    • alloc

      public static Vec3 alloc()

      Allocates a new graphene_vec3_t structure.

      The contents of the returned structure are undefined.

      Use graphene_vec3_init() to initialize the vector.

      Returns:
      the newly allocated graphene_vec3_t structure. Use graphene_vec3_free() to free the resources allocated by this function.
      Since:
      1.0
    • one

      public static Vec3 one()
      Provides a constant pointer to a vector with three components, all sets to 1.
      Returns:
      a constant vector
      Since:
      1.0
    • xAxis

      public static Vec3 xAxis()
      Provides a constant pointer to a vector with three components with values set to (1, 0, 0).
      Returns:
      a constant vector
      Since:
      1.0
    • yAxis

      public static Vec3 yAxis()
      Provides a constant pointer to a vector with three components with values set to (0, 1, 0).
      Returns:
      a constant vector
      Since:
      1.0
    • zAxis

      public static Vec3 zAxis()
      Provides a constant pointer to a vector with three components with values set to (0, 0, 1).
      Returns:
      a constant vector
      Since:
      1.0
    • zero

      public static Vec3 zero()
      Provides a constant pointer to a vector with three components, all sets to 0.
      Returns:
      a constant vector
      Since:
      1.0
    • add

      public void add(Vec3 b, Vec3 res)
      Adds each component of the two given vectors.
      Parameters:
      b - a graphene_vec3_t
      res - return location for the resulting vector
      Since:
      1.0
    • cross

      public void cross(Vec3 b, Vec3 res)
      Computes the cross product of the two given vectors.
      Parameters:
      b - a graphene_vec3_t
      res - return location for the resulting vector
      Since:
      1.0
    • divide

      public void divide(Vec3 b, Vec3 res)
      Divides each component of the first operand this Vec3 by the corresponding component of the second operand b, and places the results into the vector res.
      Parameters:
      b - a graphene_vec3_t
      res - return location for the resulting vector
      Since:
      1.0
    • dot

      public float dot(Vec3 b)
      Computes the dot product of the two given vectors.
      Parameters:
      b - a graphene_vec3_t
      Returns:
      the value of the dot product
      Since:
      1.0
    • equal

      public boolean equal(Vec3 v2)
      Checks whether the two given graphene_vec3_t are equal.
      Parameters:
      v2 - a graphene_vec3_t
      Returns:
      true if the two vectors are equal, and false otherwise
      Since:
      1.2
    • free

      public void free()
      Frees the resources allocated by this Vec3
      Since:
      1.0
    • getX

      public float getX()
      Retrieves the first component of the given vector v.
      Returns:
      the value of the first component of the vector
      Since:
      1.0
    • getXy

      public void getXy(Vec2 res)
      Creates a graphene_vec2_t that contains the first and second components of the given graphene_vec3_t.
      Parameters:
      res - return location for a graphene_vec2_t
      Since:
      1.0
    • getXy0

      public void getXy0(Vec3 res)
      Creates a graphene_vec3_t that contains the first two components of the given graphene_vec3_t, and the third component set to 0.
      Parameters:
      res - return location for a graphene_vec3_t
      Since:
      1.0
    • getXyz0

      public void getXyz0(Vec4 res)
      Converts a graphene_vec3_t in a graphene_vec4_t using 0.0 as the value for the fourth component of the resulting vector.
      Parameters:
      res - return location for the vector
      Since:
      1.0
    • getXyz1

      public void getXyz1(Vec4 res)
      Converts a graphene_vec3_t in a graphene_vec4_t using 1.0 as the value for the fourth component of the resulting vector.
      Parameters:
      res - return location for the vector
      Since:
      1.0
    • getXyzw

      public void getXyzw(float w, Vec4 res)
      Converts a graphene_vec3_t in a graphene_vec4_t using w as the value of the fourth component of the resulting vector.
      Parameters:
      w - the value of the W component
      res - return location for the vector
      Since:
      1.0
    • getY

      public float getY()
      Retrieves the second component of the given vector v.
      Returns:
      the value of the second component of the vector
      Since:
      1.0
    • getZ

      public float getZ()
      Retrieves the third component of the given vector v.
      Returns:
      the value of the third component of the vector
      Since:
      1.0
    • init

      public Vec3 init(float x, float y, float z)

      Initializes a graphene_vec3_t using the given values.

      This function can be called multiple times.

      Parameters:
      x - the X field of the vector
      y - the Y field of the vector
      z - the Z field of the vector
      Returns:
      a pointer to the initialized vector
      Since:
      1.0
    • initFromFloat

      public Vec3 initFromFloat(@Nullable float @Nullable [] src)
      Initializes a graphene_vec3_t with the values from an array.
      Parameters:
      src - an array of 3 floating point values
      Returns:
      the initialized vector
      Throws:
      IllegalArgumentException - when length of src is less than 3
      Since:
      1.0
    • initFromVec3

      public Vec3 initFromVec3(Vec3 src)
      Initializes a graphene_vec3_t with the values of another graphene_vec3_t.
      Parameters:
      src - a graphene_vec3_t
      Returns:
      the initialized vector
      Since:
      1.0
    • interpolate

      public void interpolate(Vec3 v2, double factor, Vec3 res)
      Linearly interpolates this Vec3 and v2 using the given factor.
      Parameters:
      v2 - a graphene_vec3_t
      factor - the interpolation factor
      res - the interpolated vector
      Since:
      1.10
    • length

      public float length()
      Retrieves the length of the given vector v.
      Returns:
      the value of the length of the vector
      Since:
      1.0
    • max

      public void max(Vec3 b, Vec3 res)
      Compares each component of the two given vectors and creates a vector that contains the maximum values.
      Parameters:
      b - a graphene_vec3_t
      res - return location for the result vector
      Since:
      1.0
    • min

      public void min(Vec3 b, Vec3 res)
      Compares each component of the two given vectors and creates a vector that contains the minimum values.
      Parameters:
      b - a graphene_vec3_t
      res - return location for the result vector
      Since:
      1.0
    • multiply

      public void multiply(Vec3 b, Vec3 res)
      Multiplies each component of the two given vectors.
      Parameters:
      b - a graphene_vec3_t
      res - return location for the resulting vector
      Since:
      1.0
    • near

      public boolean near(Vec3 v2, float epsilon)
      Compares the two given graphene_vec3_t vectors and checks whether their values are within the given epsilon.
      Parameters:
      v2 - a graphene_vec3_t
      epsilon - the threshold between the two vectors
      Returns:
      true if the two vectors are near each other
      Since:
      1.2
    • negate

      public void negate(Vec3 res)
      Negates the given graphene_vec3_t.
      Parameters:
      res - return location for the result vector
      Since:
      1.2
    • normalize

      public void normalize(Vec3 res)
      Normalizes the given graphene_vec3_t.
      Parameters:
      res - return location for the normalized vector
      Since:
      1.0
    • scale

      public void scale(float factor, Vec3 res)
      Multiplies all components of the given vector with the given scalar factor.
      Parameters:
      factor - the scalar factor
      res - return location for the result vector
      Since:
      1.2
    • subtract

      public void subtract(Vec3 b, Vec3 res)
      Subtracts from each component of the first operand this Vec3 the corresponding component of the second operand b and places each result into the components of res.
      Parameters:
      b - a graphene_vec3_t
      res - return location for the resulting vector
      Since:
      1.0
    • toFloat

      public void toFloat(@Nullable Out<float[]> dest)
      Copies the components of a graphene_vec3_t into the given array.
      Parameters:
      dest - return location for an array of floating point values
      Since:
      1.0