Dart Documentationbox2d_htmlManifoldPoint

ManifoldPoint class

A manifold point is a contact point belonging to a contact manifold. It holds the details of the geometry and dynamics of the contact points.

class ManifoldPoint {
  /**
   * Usage depends on manifold type. For circles, is the local center of
   * circleB. For faceA, is the local center of CircleB or the clip point of
   * polygonB. For faceB, is the clip point of polygonA.
   */
  final Vector localPoint;

  /** The non-penetration impulse. */
  num normalImpulse;

  /** The friction impulse. */
  num tangentImpulse;

  /** Unique identifier for a contact point between two shapes. */
  final ContactID id;

  /**
   * Constructs a new ManifoldPoint.
   */
  ManifoldPoint() :
    localPoint = new Vector(),
    tangentImpulse = 0,
    normalImpulse = 0,
    id = new ContactID() { }

  /**
   * Constructs a new ManifoldPoint that is a copy of the given point.
   */
  ManifoldPoint.copy(ManifoldPoint other) :
    localPoint = new Vector.copy(other.localPoint),
    normalImpulse = other.normalImpulse,
    tangentImpulse = other.tangentImpulse,
    id = new ContactID.copy(other.id) { }

  /**
   * Sets this ManifoldPoint to be equal to the given point.
   */
  void setFrom(ManifoldPoint other) {
    localPoint.setFrom(other.localPoint);
    normalImpulse = other.normalImpulse;
    tangentImpulse = other.tangentImpulse;
    id.setFrom(other.id);
  }
}

Constructors

new ManifoldPoint() #

Constructs a new ManifoldPoint.

ManifoldPoint() :
  localPoint = new Vector(),
  tangentImpulse = 0,
  normalImpulse = 0,
  id = new ContactID() { }

new ManifoldPoint.copy(ManifoldPoint other) #

Constructs a new ManifoldPoint that is a copy of the given point.

ManifoldPoint.copy(ManifoldPoint other) :
  localPoint = new Vector.copy(other.localPoint),
  normalImpulse = other.normalImpulse,
  tangentImpulse = other.tangentImpulse,
  id = new ContactID.copy(other.id) { }

Properties

final ContactID id #

Unique identifier for a contact point between two shapes.

final ContactID id;

final Vector localPoint #

Usage depends on manifold type. For circles, is the local center of circleB. For faceA, is the local center of CircleB or the clip point of polygonB. For faceB, is the clip point of polygonA.

final Vector localPoint;

num normalImpulse #

The non-penetration impulse.

num normalImpulse;

final Type runtimeType #

inherited from Object

A representation of the runtime type of the object.

external Type get runtimeType;

num tangentImpulse #

The friction impulse.

num tangentImpulse;

Operators

bool operator ==(other) #

inherited from Object

The equality operator.

The default behavior for all Objects is to return true if and only if this and other are the same object.

If a subclass overrides the equality operator it should override the hashCode method as well to maintain consistency.

bool operator ==(other) => identical(this, other);

Methods

int hashCode() #

inherited from Object

Get a hash code for this object.

All objects have hash codes. Hash codes are guaranteed to be the same for objects that are equal when compared using the equality operator ==. Other than that there are no guarantees about the hash codes. They will not be consistent between runs and there are no distribution guarantees.

If a subclass overrides hashCode it should override the equality operator as well to maintain consistency.

external int hashCode();

new ManifoldPoint() #

Constructs a new ManifoldPoint.

ManifoldPoint() :
  localPoint = new Vector(),
  tangentImpulse = 0,
  normalImpulse = 0,
  id = new ContactID() { }

new ManifoldPoint.copy(ManifoldPoint other) #

Constructs a new ManifoldPoint that is a copy of the given point.

ManifoldPoint.copy(ManifoldPoint other) :
  localPoint = new Vector.copy(other.localPoint),
  normalImpulse = other.normalImpulse,
  tangentImpulse = other.tangentImpulse,
  id = new ContactID.copy(other.id) { }

noSuchMethod(String name, List args) #

inherited from Object

noSuchMethod is invoked when users invoke a non-existant method on an object. The name of the method and the arguments of the invocation are passed to noSuchMethod. If noSuchMethod returns a value, that value becomes the result of the original invocation.

The default behavior of noSuchMethod is to throw a noSuchMethodError.

external Dynamic noSuchMethod(String name, List args);

const Object() #

inherited from Object

Creates a new Object instance.

Object instances have no meaningful state, and are only useful through their identity. An Object instance is equal to itself only.

const Object();

void setFrom(ManifoldPoint other) #

Sets this ManifoldPoint to be equal to the given point.

void setFrom(ManifoldPoint other) {
  localPoint.setFrom(other.localPoint);
  normalImpulse = other.normalImpulse;
  tangentImpulse = other.tangentImpulse;
  id.setFrom(other.id);
}

String toString() #

inherited from Object

Returns a string representation of this object.

external String toString();