# PhysicalWater Class

Interface for physical water handling. Physical water is used to simulate a force field affecting water objects.

To use this class, include the UniginePhysicalWater.h file.

## PhysicalWater (const Math::vec3 & size)

Constructor. Creates a physical water node of the specified size.

### Arguments

• const Math::vec3 & size - Water box size in units.

## voidsetVelocity (const Math::vec3 & velocity)

Sets a velocity of the flow in physical water.

### Arguments

• const Math::vec3 & velocity - A velocity in units per second.

## Math::Vec3getContactPoint (int num)

Returns the coordinates of the contact point.

### Arguments

• int num - Contact number.

### Return value

Contact point coordinates.

## floatgetDensity ()

Returns the current density of the physical water that determines objects buoyancy.

### Return value

The density value.

## floatgetAngularDamping ()

Returns the current value indicating how much the angular velocity of the objects decreases when they get into the physical water.

### Return value

The angular damping value.

## voidsetSize (const Math::vec3 & size)

Sets a size of the physical water node.

### Arguments

• const Math::vec3 & size - A size of the water box in units. If a negative value is provided, 0 will be used instead.

## voidsetAngularDamping (float damping)

Sets a value indicating how much the angular velocity of the objects decreases when they get into the physical water.

### Arguments

• float damping - An angular damping value. If a negative value is provided, 0 will be used instead.

## voidsetLinearDamping (float damping)

Sets a value indicating how much the linear velocity of the objects decreases when they get into the physical water.

### Arguments

• float damping - A linear damping value. If a negative value is provided, 0 will be used instead.

## Math::vec3getContactForce (int num)

Returns the force in the point of a given contact.

### Arguments

• int num - Contact number.

Force value.

## floatgetLinearDamping ()

Returns the current value indicating how much the linear velocity of the objects decreases when they get into the physical water.

### Return value

The linear damping value.

## Math::vec3getSize ()

Returns the current size of the physical water node.

### Return value

The size of the water box in units.

## floatgetContactDepth (int num)

Returns the depth of the object submergence by the given contact.

### Arguments

• int num - Contact number.

### Return value

Depth of object submergence in units.

## Math::vec3getVelocity ()

Returns the current velocity of the flow in physical water.

### Return value

The velocity in units per second.

## Ptr<Body>getContactBody (int num)

Returns the body of the object by the given contact with physical water.

### Arguments

• int num - Contact number.

### Return value

Body of the object.

## intgetNumContacts ()

Returns the number of contacts between the physical water and the objects.

### Return value

Number of contacts.

## Math::vec3getContactVelocity (int num)

Returns the relative velocity between the object and the physical water.

### Arguments

• int num - Contact number.

### Return value

Relative velocity in units per second.

## voidsetDensity (float density)

Sets a density of the water that determines objects buoyancy.

### Arguments

• float density - A density value. If a negative value is provided, 0 will be used instead.
Last update: 2017-07-03