Programming
Fundamentals
Setting Up Development Environment
UnigineScript
High-Level Systems
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
GUI
Double Precision Coordinates
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Networking Functionality
Pathfinding-Related Classes
Plugins-Related Classes
Rendering-Related Classes

Unigine::JointBall Class

Header:#include <UniginePhysics.h>
Inherits:Joint

This class is used to create ball joints.

JointBall Class

Members


static JointBallPtr create()

Constructor. Creates a ball joint with an anchor at the origin of the world coordinates.

static JointBallPtr create(const Ptr<Body> & body0, const Ptr<Body> & body1)

Constructor. Creates a ball joint connecting two given bodies. An anchor is placed between centers of mass of the bodies.

Arguments

  • const Ptr<Body> & body0 - First body to be connected with the joint.
  • const Ptr<Body> & body1 - Second body to be connected with the joint.

static JointBallPtr create(const Ptr<Body> & body0, const Ptr<Body> & body1, const Math::Vec3 & anchor)

Constructor. Creates a ball joint connecting two given bodies with an anchor placed at specified coordinates.

Arguments

  • const Ptr<Body> & body0 - First body to be connected with the joint.
  • const Ptr<Body> & body1 - Second body to be connected with the joint.
  • const Math::Vec3 & anchor - Anchor coordinates.

static JointBallPtr create(const Ptr<Body> & body0, const Ptr<Body> & body1, const Math::Vec3 & anchor, const Math::vec3 & axis)

Constructor. Creates a ball joint connecting two given bodies with specified axis coordinates and an anchor placed at specified coordinates.

Arguments

  • const Ptr<Body> & body0 - First body to be connected with the joint.
  • const Ptr<Body> & body1 - Second body to be connected with the joint.
  • const Math::Vec3 & anchor - Anchor coordinates.
  • const Math::vec3 & axis - Axis coordinates.

Ptr<JointBall> cast(const Ptr<Joint> & joint)

Casts a JointFixed out of the Joint instance.

Arguments

  • const Ptr<Joint> & joint - Joint instance.

Return value

JointBall.

void setAngularDamping(float damping)

Sets an angular damping of the joint.

Arguments

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

float getAngularDamping()

Returns the angular damping of the joint.

Return value

Angular damping.

void setAngularLimitAngle(float angle)

Sets a swing limit angle. Swing limit specifies how much connected bodies can bend from the joint axis.

Arguments

  • float angle - Angle in degrees. The provided value will be saturated in the range [0; 180]. 0 means no limit.

float getAngularLimitAngle()

Returns the swing limit angle. Swing limit specifies how much connected bodies can bend from the joint axis. 0 means there is no limit.

Return value

Swing limit angle in degrees.

void setAngularLimitFrom(float from)

Sets a low twist limit angle. Twist limit specifies how much a connected body can twist around the joint axis.

Arguments

  • float from - Angle in degrees. The provided value will be saturated in the range [-180; 180].

float getAngularLimitFrom()

Returns the low twist limit angle. Twist limit specifies how much a connected body can twist around the joint axis.

Return value

Low twist limit angle in degrees.

void setAngularLimitTo(float to)

Sets a high twist limit angle. Twist limit specifies how much a connected body can twist around the joint axis.

Arguments

  • float to - Angle in degrees. The provided value will be saturated in the range [-180; 180].

float getAngularLimitTo()

Returns the high twist limit angle. Twist limit specifies how much a connected body can twist around the joint axis.

Return value

High twist limit angle in degrees.

void setAxis0(const Math::vec3 & axis0)

Sets an axis of the first connected body.

Arguments

  • const Math::vec3 & axis0 - Axis of the first body. The provided vector will be normalized.

Math::vec3 getAxis0()

Returns the axis of the first connected body.

Return value

Axis of the first body.

void setAxis1(const Math::vec3 & axis1)

Sets an axis of the second connected body.

Arguments

  • const Math::vec3 & axis1 - Axis of the second body. The provided vector will be normalized.

Math::vec3 getAxis1()

Returns the axis of the second connected body.

Return value

Axis of the second body.

void setWorldAxis(const Math::vec3 & axis)

Sets a joint axis. This method updates axes of the connected bodies.

Arguments

  • const Math::vec3 & axis - Joint axis.

Math::vec3 getWorldAxis()

Returns the joint axis. The joint axis is calculated based on the axes of the connected bodies.

Return value

Joint axis.
Last update: 2017-07-03