org.jbox2d.collision.shapes
Class ChainShape

java.lang.Object
  extended by org.jbox2d.collision.shapes.Shape
      extended by org.jbox2d.collision.shapes.ChainShape

public class ChainShape
extends Shape

A chain shape is a free form sequence of line segments. The chain has two-sided collision, so you can use inside and outside collision. Therefore, you may use any winding order. Since there may be many vertices, they are allocated using Alloc. Connectivity information is used to create smooth collisions. WARNING The chain will not collide properly if there are self-intersections.

Author:
Daniel

Field Summary
 int m_count
           
 boolean m_hasNextVertex
           
 boolean m_hasPrevVertex
           
 Vec2 m_nextVertex
           
 Vec2 m_prevVertex
           
 Vec2[] m_vertices
           
 
Fields inherited from class org.jbox2d.collision.shapes.Shape
m_radius, m_type
 
Constructor Summary
ChainShape()
           
 
Method Summary
 Shape clone()
           
 void computeAABB(AABB aabb, Transform xf, int childIndex)
          Given a transform, compute the associated axis aligned bounding box for a child shape.
 void computeMass(MassData massData, float density)
          Compute the mass properties of this shape using its dimensions and density.
 void createChain(Vec2[] vertices, int count)
          Create a chain with isolated end vertices.
 void createLoop(Vec2[] vertices, int count)
          Create a loop.
 int getChildCount()
          Get the number of child primitives
 void getChildEdge(EdgeShape edge, int index)
          Get a child edge.
 boolean raycast(RayCastOutput output, RayCastInput input, Transform xf, int childIndex)
          Cast a ray against a child shape.
 void setNextVertex(Vec2 nextVertex)
          Establish connectivity to a vertex that follows the last vertex.
 void setPrevVertex(Vec2 prevVertex)
          Establish connectivity to a vertex that precedes the first vertex.
 boolean testPoint(Transform xf, Vec2 p)
          Test a point for containment in this shape.
 
Methods inherited from class org.jbox2d.collision.shapes.Shape
getRadius, getType, setRadius
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_vertices

public Vec2[] m_vertices

m_count

public int m_count

m_prevVertex

public final Vec2 m_prevVertex

m_nextVertex

public final Vec2 m_nextVertex

m_hasPrevVertex

public boolean m_hasPrevVertex

m_hasNextVertex

public boolean m_hasNextVertex
Constructor Detail

ChainShape

public ChainShape()
Method Detail

getChildCount

public int getChildCount()
Description copied from class: Shape
Get the number of child primitives

Specified by:
getChildCount in class Shape
Returns:

getChildEdge

public void getChildEdge(EdgeShape edge,
                         int index)
Get a child edge.


testPoint

public boolean testPoint(Transform xf,
                         Vec2 p)
Description copied from class: Shape
Test a point for containment in this shape. This only works for convex shapes.

Specified by:
testPoint in class Shape
Parameters:
xf - the shape world transform.
p - a point in world coordinates.

raycast

public boolean raycast(RayCastOutput output,
                       RayCastInput input,
                       Transform xf,
                       int childIndex)
Description copied from class: Shape
Cast a ray against a child shape.

Specified by:
raycast in class Shape
Returns:
if hit

computeAABB

public void computeAABB(AABB aabb,
                        Transform xf,
                        int childIndex)
Description copied from class: Shape
Given a transform, compute the associated axis aligned bounding box for a child shape.

Specified by:
computeAABB in class Shape

computeMass

public void computeMass(MassData massData,
                        float density)
Description copied from class: Shape
Compute the mass properties of this shape using its dimensions and density. The inertia tensor is computed about the local origin.

Specified by:
computeMass in class Shape
Parameters:
massData - returns the mass data for this shape.
density - the density in kilograms per meter squared.

clone

public Shape clone()
Specified by:
clone in class Shape

createLoop

public void createLoop(Vec2[] vertices,
                       int count)
Create a loop. This automatically adjusts connectivity.

Parameters:
vertices - an array of vertices, these are copied
count - the vertex count

createChain

public void createChain(Vec2[] vertices,
                        int count)
Create a chain with isolated end vertices.

Parameters:
vertices - an array of vertices, these are copied
count - the vertex count

setPrevVertex

public void setPrevVertex(Vec2 prevVertex)
Establish connectivity to a vertex that precedes the first vertex. Don't call this for loops.

Parameters:
prevVertex -

setNextVertex

public void setNextVertex(Vec2 nextVertex)
Establish connectivity to a vertex that follows the last vertex. Don't call this for loops.

Parameters:
nextVertex -


Copyright © 2013. All Rights Reserved.