Package org.gnome.graphene
Class Vec4
java.lang.Object
io.github.jwharm.javagi.base.ProxyInstance
org.gnome.graphene.Vec4
- All Implemented Interfaces:
Proxy
A structure capable of holding a vector with four dimensions: x, y, z, and w.
The contents of the graphene_vec4_t
structure are private and should
never be accessed directly.
-
Constructor Summary
ConstructorDescriptionVec4()
Allocate a new Vec4.Allocate a new Vec4.Vec4
(MemorySegment address) Create a Vec4 proxy instance for the provided memory address.Allocate a new Vec4 with the fields set to the provided values.Allocate a new Vec4 with the fields set to the provided values. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds each component of the two given vectors.static Vec4
alloc()
Allocates a newgraphene_vec4_t
structure.void
Divides each component of the first operand this Vec4 by the corresponding component of the second operandb
, and places the results into the vectorres
.float
Computes the dot product of the two given vectors.boolean
Checks whether the two givengraphene_vec4_t
are equal.void
free()
Frees the resources allocated by this Vec4static MemoryLayout
The memory layout of the native struct.static Type
getType()
Get the GType of the Vec4 classfloat
getW()
Retrieves the value of the fourth component of the givengraphene_vec4_t
.float
getX()
Retrieves the value of the first component of the givengraphene_vec4_t
.void
Creates agraphene_vec2_t
that contains the first two components of the givengraphene_vec4_t
.void
Creates agraphene_vec3_t
that contains the first three components of the givengraphene_vec4_t
.float
getY()
Retrieves the value of the second component of the givengraphene_vec4_t
.float
getZ()
Retrieves the value of the third component of the givengraphene_vec4_t
.init
(float x, float y, float z, float w) Initializes agraphene_vec4_t
using the given values.initFromFloat
(float[] src) Initializes agraphene_vec4_t
with the values inside the given array.initFromVec2
(Vec2 src, float z, float w) Initializes agraphene_vec4_t
using the components of agraphene_vec2_t
and the values ofz
andw
.initFromVec3
(Vec3 src, float w) Initializes agraphene_vec4_t
using the components of agraphene_vec3_t
and the value ofw
.initFromVec4
(Vec4 src) Initializes agraphene_vec4_t
using the components of anothergraphene_vec4_t
.void
interpolate
(Vec4 v2, double factor, Vec4 res) Linearly interpolates this Vec4 andv2
using the givenfactor
.float
length()
Computes the length of the givengraphene_vec4_t
.void
Compares each component of the two given vectors and creates a vector that contains the maximum values.void
Compares each component of the two given vectors and creates a vector that contains the minimum values.void
Multiplies each component of the two given vectors.boolean
Compares the two givengraphene_vec4_t
vectors and checks whether their values are within the givenepsilon
.void
Negates the givengraphene_vec4_t
.void
Normalizes the givengraphene_vec4_t
.static Vec4
one()
Retrieves a pointer to agraphene_vec4_t
with all its components set to 1.Read the value of the fieldvalue
.void
Multiplies all components of the given vector with the given scalarfactor
.void
Subtracts from each component of the first operand this Vec4 the corresponding component of the second operandb
and places each result into the components ofres
.void
toFloat
(float[] dest) Stores the components of the givengraphene_vec4_t
into an array of floating point values.static Vec4
wAxis()
Retrieves a pointer to agraphene_vec4_t
with its components set to (0, 0, 0, 1).void
writeValue
(Simd4F value) Write a value in the fieldvalue
.static Vec4
xAxis()
Retrieves a pointer to agraphene_vec4_t
with its components set to (1, 0, 0, 0).static Vec4
yAxis()
Retrieves a pointer to agraphene_vec4_t
with its components set to (0, 1, 0, 0).static Vec4
zAxis()
Retrieves a pointer to agraphene_vec4_t
with its components set to (0, 0, 1, 0).static Vec4
zero()
Retrieves a pointer to agraphene_vec4_t
with all its components set to 0.Methods inherited from class io.github.jwharm.javagi.base.ProxyInstance
equals, handle, hashCode
-
Constructor Details
-
Vec4
Create a Vec4 proxy instance for the provided memory address.- Parameters:
address
- the memory address of the native object
-
Vec4
Allocate a new Vec4.- Parameters:
arena
- to control the memory allocation scope
-
Vec4
public Vec4()Allocate a new Vec4. The memory is allocated withArena.ofAuto()
. -
Vec4
-
Vec4
Allocate a new Vec4 with the fields set to the provided values. The memory is allocated withArena.ofAuto()
.- Parameters:
value
- value for the fieldvalue
-
-
Method Details
-
getType
-
getMemoryLayout
The memory layout of the native struct.- Returns:
- the memory layout
-
readValue
-
writeValue
Write a value in the fieldvalue
.- Parameters:
value
- The new value for the fieldvalue
-
alloc
Allocates a newgraphene_vec4_t
structure.The contents of the returned structure are undefined.
Use graphene_vec4_init() to initialize the vector.
- Returns:
- the newly allocated
graphene_vec4_t
structure. Use graphene_vec4_free() to free the resources allocated by this function.
-
one
Retrieves a pointer to agraphene_vec4_t
with all its components set to 1.- Returns:
- a constant vector
-
wAxis
Retrieves a pointer to agraphene_vec4_t
with its components set to (0, 0, 0, 1).- Returns:
- a constant vector
-
xAxis
Retrieves a pointer to agraphene_vec4_t
with its components set to (1, 0, 0, 0).- Returns:
- a constant vector
-
yAxis
Retrieves a pointer to agraphene_vec4_t
with its components set to (0, 1, 0, 0).- Returns:
- a constant vector
-
zAxis
Retrieves a pointer to agraphene_vec4_t
with its components set to (0, 0, 1, 0).- Returns:
- a constant vector
-
zero
Retrieves a pointer to agraphene_vec4_t
with all its components set to 0.- Returns:
- a constant vector
-
add
-
divide
-
dot
Computes the dot product of the two given vectors.- Parameters:
b
- agraphene_vec4_t
- Returns:
- the value of the dot product
-
equal
Checks whether the two givengraphene_vec4_t
are equal.- Parameters:
v2
- agraphene_vec4_t
- Returns:
true
if the two vectors are equal, and false otherwise
-
free
public void free()Frees the resources allocated by this Vec4 -
getW
public float getW()Retrieves the value of the fourth component of the givengraphene_vec4_t
.- Returns:
- the value of the fourth component
-
getX
public float getX()Retrieves the value of the first component of the givengraphene_vec4_t
.- Returns:
- the value of the first component
-
getXy
Creates agraphene_vec2_t
that contains the first two components of the givengraphene_vec4_t
.- Parameters:
res
- return location for agraphene_vec2_t
-
getXyz
Creates agraphene_vec3_t
that contains the first three components of the givengraphene_vec4_t
.- Parameters:
res
- return location for a graphene_vec3_t
-
getY
public float getY()Retrieves the value of the second component of the givengraphene_vec4_t
.- Returns:
- the value of the second component
-
getZ
public float getZ()Retrieves the value of the third component of the givengraphene_vec4_t
.- Returns:
- the value of the third component
-
init
Initializes agraphene_vec4_t
using the given values.This function can be called multiple times.
- Parameters:
x
- the X field of the vectory
- the Y field of the vectorz
- the Z field of the vectorw
- the W field of the vector- Returns:
- a pointer to the initialized vector
-
initFromFloat
Initializes agraphene_vec4_t
with the values inside the given array.- Parameters:
src
- an array of four floating point values- Returns:
- the initialized vector
-
initFromVec2
Initializes agraphene_vec4_t
using the components of agraphene_vec2_t
and the values ofz
andw
.- Parameters:
src
- agraphene_vec2_t
z
- the value for the third component of this Vec4w
- the value for the fourth component of this Vec4- Returns:
- the initialized vector
-
initFromVec3
-
initFromVec4
-
interpolate
-
length
public float length()Computes the length of the givengraphene_vec4_t
.- Returns:
- the length of the vector
-
max
-
min
-
multiply
-
near
Compares the two givengraphene_vec4_t
vectors and checks whether their values are within the givenepsilon
.- Parameters:
v2
- agraphene_vec4_t
epsilon
- the threshold between the two vectors- Returns:
true
if the two vectors are near each other
-
negate
Negates the givengraphene_vec4_t
.- Parameters:
res
- return location for the result vector
-
normalize
Normalizes the givengraphene_vec4_t
.- Parameters:
res
- return location for the normalized vector
-
scale
Multiplies all components of the given vector with the given scalarfactor
.- Parameters:
factor
- the scalar factorres
- return location for the result vector
-
subtract
-
toFloat
public void toFloat(float[] dest) Stores the components of the givengraphene_vec4_t
into an array of floating point values.- Parameters:
dest
- return location for an array of floating point values
-