Godot Nature of Code  1.2.0
Nature of Code implemented in Godot Engine
Public Member Functions | Public Attributes | Properties | List of all members
VerletPhysics.AttractionBehavior Class Reference

Attraction behavior. More...

Inheritance diagram for VerletPhysics.AttractionBehavior:
VerletPhysics.IBehavior

Public Member Functions

 AttractionBehavior (VerletPoint attractor, float strength, float radius, float jitter=0)
 Create an attraction behavior. More...
 
void ApplyBehavior (VerletPoint point, float delta)
 Apply behavior to a verlet point. More...
 

Public Attributes

VerletPoint Attractor
 Attraction point More...
 
float Jitter
 Jitter value (random coefficient) More...
 
float Strength
 Attraction strength More...
 

Properties

float Radius [get, set]
 Attraction radius More...
 

Detailed Description

Attraction behavior.

Definition at line 6 of file AttractionBehavior.cs.

Constructor & Destructor Documentation

◆ AttractionBehavior()

VerletPhysics.AttractionBehavior.AttractionBehavior ( VerletPoint  attractor,
float  strength,
float  radius,
float  jitter = 0 
)
inline

Create an attraction behavior.

Parameters
attractorAttraction point
strengthAttraction strength
radiusAttraction radius
jitterRandom coefficient

Definition at line 38 of file AttractionBehavior.cs.

39  {
40  Attractor = attractor;
41  Strength = strength;
42  Radius = radius;
43  Jitter = jitter;
44  }
float Strength
Attraction strength
float Jitter
Jitter value (random coefficient)
VerletPoint Attractor
Attraction point

Member Function Documentation

◆ ApplyBehavior()

void VerletPhysics.AttractionBehavior.ApplyBehavior ( VerletPoint  point,
float  delta 
)
inline

Apply behavior to a verlet point.

Parameters
pointVerlet point
deltaDelta time

Implements VerletPhysics.IBehavior.

Definition at line 46 of file AttractionBehavior.cs.

47  {
48  var diff = Attractor.GlobalPosition - point.GlobalPosition;
49  var dist = diff.LengthSquared();
50  if (dist < radiusSquared)
51  {
52  var f = diff.NormalizeTo(1.0f - (dist / radiusSquared)).Jitter(Jitter) * Strength * delta;
53  point.ApplyForce(f);
54  }
55  }

Member Data Documentation

◆ Attractor

VerletPoint VerletPhysics.AttractionBehavior.Attractor

Attraction point

Definition at line 9 of file AttractionBehavior.cs.

◆ Jitter

float VerletPhysics.AttractionBehavior.Jitter

Jitter value (random coefficient)

Definition at line 12 of file AttractionBehavior.cs.

◆ Strength

float VerletPhysics.AttractionBehavior.Strength

Attraction strength

Definition at line 15 of file AttractionBehavior.cs.

Property Documentation

◆ Radius

float VerletPhysics.AttractionBehavior.Radius
getset

Attraction radius

Definition at line 18 of file AttractionBehavior.cs.

19  {
20  get => radius;
21  set
22  {
23  radius = value;
24  radiusSquared = value * value;
25  }
26  }

The documentation for this class was generated from the following file: