Class SpringParams

All Implemented Interfaces:
Proxy

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

Physical parameters of a spring for SpringAnimation.

Any spring can be described by three parameters: mass, stiffness and damping.

An undamped spring will produce an oscillatory motion which will go on forever.

The frequency and amplitude of the oscillations will be determined by the stiffness (how "strong" the spring is) and its mass (how much "inertia" it has).

If damping is larger than 0, the amplitude of that oscillating motion will exponientally decrease over time. If that damping is strong enough that the spring can't complete a full oscillation, it's called an overdamped spring.

If we the spring can oscillate, it's called an underdamped spring.

The value between these two behaviors is called critical damping; a critically damped spring will comes to rest in the minimum possible time without producing oscillations.

The damping can be replaced by damping ratio, which produces the following springs:

  • 0: an undamped spring.
  • Between 0 and 1: an underdamped spring.
  • 1: a critically damped spring.
  • Larger than 1: an overdamped spring.

As such

  • Constructor Details

    • SpringParams

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

      public SpringParams(double dampingRatio, double mass, double stiffness)

      Creates a new AdwSpringParams from mass, stiffness and dampingRatio.

      The damping value is calculated from dampingRatio and the other two parameters.

      • If dampingRatio is 0, the spring will not be damped and will oscillate endlessly.
      • If dampingRatio is between 0 and 1, the spring is underdamped and will always overshoot.
      • If dampingRatio is 1, the spring is critically damped and will reach its resting position the quickest way possible.
      • If dampingRatio is larger than 1, the spring is overdamped and will reach its resting position faster than it can complete an oscillation.

      full(double, double, double) allows to pass a raw damping value instead.

      Parameters:
      dampingRatio - the damping ratio of the spring
      mass - the mass of the spring
      stiffness - the stiffness of the spring
  • Method Details

    • getType

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

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

      public static SpringParams full(double damping, double mass, double stiffness)

      Creates a new AdwSpringParams from mass, stiffness and damping.

      See SpringParams(double, double, double) for a simplified constructor using damping ratio instead of damping.

      Parameters:
      damping - the damping of the spring
      mass - the mass of the spring
      stiffness - the stiffness of the spring
      Returns:
      the newly created spring parameters
    • getDamping

      public double getDamping()
      Gets the damping of self.
      Returns:
      the damping
    • getDampingRatio

      public double getDampingRatio()
      Gets the damping ratio of self.
      Returns:
      the damping ratio
    • getMass

      public double getMass()
      Gets the mass of self.
      Returns:
      the mass
    • getStiffness

      public double getStiffness()
      Gets the stiffness of self.
      Returns:
      the stiffness
    • ref

      public SpringParams ref()
      Increases the reference count of self.
      Returns:
      this SpringParams
    • unref

      public void unref()

      Decreases the reference count of self.

      If the last reference is dropped, the structure is freed.