C# 클래스 Project290.Physics.Collision.Collision

파일 보기 프로젝트 열기: scastle/Solitude

공개 메소드들

메소드 설명
CollideCircles ( Manifold &manifold, CircleShape circleA, Transform &xfA, CircleShape circleB, Transform &xfB ) : void
CollideEdgeAndCircle ( Manifold &manifold, EdgeShape edgeA, Transform &transformA, CircleShape circleB, Transform &transformB ) : void

Compute contact points for edge versus circle. This accounts for edge connectivity.

CollideEdgeAndPolygon ( Manifold &manifold, EdgeShape edgeA, Transform &xfA, PolygonShape polygonB, Transform &xfB ) : void

Collides and edge and a polygon, taking into account edge adjacency.

CollidePolygonAndCircle ( Manifold &manifold, PolygonShape polygonA, Transform &transformA, CircleShape circleB, Transform &transformB ) : void

Compute the collision manifold between a polygon and a circle.

CollidePolygons ( Manifold &manifold, PolygonShape polyA, Transform &transformA, PolygonShape polyB, Transform &transformB ) : void

Compute the collision manifold between two polygons.

GetPointStates ( FixedArray2 &state1, FixedArray2 &state2, Manifold &manifold1, Manifold &manifold2 ) : void
GetWorldManifold ( Manifold &manifold, Transform &transformA, float radiusA, Transform &transformB, float radiusB, Vector2 &normal, FixedArray2 &points ) : void

Evaluate the manifold with supplied transforms. This assumes modest motion from the original state. This does not change the point count, impulses, etc. The radii must come from the Shapes that generated the manifold.

비공개 메소드들

메소드 설명
ClipSegmentToLine ( FixedArray2 &vOut, FixedArray2 &vIn, Vector2 normal, float offset, int vertexIndexA ) : int

Clipping for contact manifolds.

ComputeEdgeSeparation ( ) : EPAxis
ComputePolygonSeparation ( ) : EPAxis
EdgeSeparation ( PolygonShape poly1, Transform &xf1, int edge1, PolygonShape poly2, Transform &xf2 ) : float

Find the separation between poly1 and poly2 for a give edge normal on poly1.

FindIncidentEdge ( FixedArray2 &c, EPProxy proxy1, int edge1, EPProxy proxy2 ) : void
FindIncidentEdge ( FixedArray2 &c, PolygonShape poly1, Transform &xf1, int edge1, PolygonShape poly2, Transform &xf2 ) : void
FindMaxSeparation ( int &edgeIndex, PolygonShape poly1, Transform &xf1, PolygonShape poly2, Transform &xf2 ) : float

Find the max separation between poly1 and poly2 using edge normals from poly1.

메소드 상세

CollideCircles() 공개 정적인 메소드

public static CollideCircles ( Manifold &manifold, CircleShape circleA, Transform &xfA, CircleShape circleB, Transform &xfB ) : void
manifold Manifold
circleA Project290.Physics.Collision.Shapes.CircleShape
xfA Transform
circleB Project290.Physics.Collision.Shapes.CircleShape
xfB Transform
리턴 void

CollideEdgeAndCircle() 공개 정적인 메소드

Compute contact points for edge versus circle. This accounts for edge connectivity.
public static CollideEdgeAndCircle ( Manifold &manifold, EdgeShape edgeA, Transform &transformA, CircleShape circleB, Transform &transformB ) : void
manifold Manifold The manifold.
edgeA Project290.Physics.Collision.Shapes.EdgeShape The edge A.
transformA Transform The transform A.
circleB Project290.Physics.Collision.Shapes.CircleShape The circle B.
transformB Transform The transform B.
리턴 void

CollideEdgeAndPolygon() 공개 정적인 메소드

Collides and edge and a polygon, taking into account edge adjacency.
public static CollideEdgeAndPolygon ( Manifold &manifold, EdgeShape edgeA, Transform &xfA, PolygonShape polygonB, Transform &xfB ) : void
manifold Manifold The manifold.
edgeA Project290.Physics.Collision.Shapes.EdgeShape The edge A.
xfA Transform The xf A.
polygonB Project290.Physics.Collision.Shapes.PolygonShape The polygon B.
xfB Transform The xf B.
리턴 void

CollidePolygonAndCircle() 공개 정적인 메소드

Compute the collision manifold between a polygon and a circle.
public static CollidePolygonAndCircle ( Manifold &manifold, PolygonShape polygonA, Transform &transformA, CircleShape circleB, Transform &transformB ) : void
manifold Manifold The manifold.
polygonA Project290.Physics.Collision.Shapes.PolygonShape The polygon A.
transformA Transform The transform of A.
circleB Project290.Physics.Collision.Shapes.CircleShape The circle B.
transformB Transform The transform of B.
리턴 void

CollidePolygons() 공개 정적인 메소드

Compute the collision manifold between two polygons.
public static CollidePolygons ( Manifold &manifold, PolygonShape polyA, Transform &transformA, PolygonShape polyB, Transform &transformB ) : void
manifold Manifold The manifold.
polyA Project290.Physics.Collision.Shapes.PolygonShape The poly A.
transformA Transform The transform A.
polyB Project290.Physics.Collision.Shapes.PolygonShape The poly B.
transformB Transform The transform B.
리턴 void

GetPointStates() 공개 정적인 메소드

public static GetPointStates ( FixedArray2 &state1, FixedArray2 &state2, Manifold &manifold1, Manifold &manifold2 ) : void
state1 FixedArray2
state2 FixedArray2
manifold1 Manifold
manifold2 Manifold
리턴 void

GetWorldManifold() 공개 정적인 메소드

Evaluate the manifold with supplied transforms. This assumes modest motion from the original state. This does not change the point count, impulses, etc. The radii must come from the Shapes that generated the manifold.
public static GetWorldManifold ( Manifold &manifold, Transform &transformA, float radiusA, Transform &transformB, float radiusB, Vector2 &normal, FixedArray2 &points ) : void
manifold Manifold The manifold.
transformA Transform The transform for A.
radiusA float The radius for A.
transformB Transform The transform for B.
radiusB float The radius for B.
normal Vector2 World vector pointing from A to B
points FixedArray2 Torld contact point (point of intersection).
리턴 void