@box2d/debug-draw
Version:
Debug drawing helper for @box2d
74 lines • 2.69 kB
TypeScript
import { b2Color, b2Draw } from "../common/b2_draw";
import { b2Vec2, b2Transform, XY } from "../common/b2_math";
import { b2Readonly } from "../common/b2_readonly";
import { b2AABB, b2RayCastInput, b2RayCastOutput } from "./b2_collision";
import { b2DistanceProxy } from "./b2_distance";
import { b2MassData, b2Shape } from "./b2_shape";
/**
* A line segment (edge) shape. These can be connected in chains or loops
* to other edge shapes. Edges created independently are two-sided and do
* no provide smooth movement across junctions.
*/
export declare class b2EdgeShape extends b2Shape {
/** These are the edge vertices */
readonly m_vertex1: b2Vec2;
readonly m_vertex2: b2Vec2;
/** Optional adjacent vertices. These are used for smooth collision. */
readonly m_vertex0: b2Vec2;
readonly m_vertex3: b2Vec2;
/** Uses m_vertex0 and m_vertex3 to create smooth collision. */
m_oneSided: boolean;
constructor();
/**
* Set this as a part of a sequence. Vertex v0 precedes the edge and vertex v3
* follows. These extra vertices are used to provide smooth movement
* across junctions. This also makes the collision one-sided. The edge
* normal points to the right looking from v1 to v2.
*/
SetOneSided(v0: XY, v1: XY, v2: XY, v3: XY): b2EdgeShape;
/**
* Set this as an isolated edge. Collision is two-sided.
*/
SetTwoSided(v1: XY, v2: XY): b2EdgeShape;
/**
* Implement b2Shape.
*/
Clone(): b2EdgeShape;
Copy(other: b2EdgeShape): b2EdgeShape;
/**
* @see b2Shape::GetChildCount
*/
GetChildCount(): number;
/**
* @see b2Shape::TestPoint
*/
TestPoint(_xf: b2Readonly<b2Transform>, _p: XY): boolean;
private static RayCast_s_p1;
private static RayCast_s_p2;
private static RayCast_s_d;
private static RayCast_s_e;
private static RayCast_s_q;
private static RayCast_s_r;
/**
* Implement b2Shape.
*
* p = p1 + t * d
* v = v1 + s * e
* p1 + t * d = v1 + s * e
* s * e - t * d = p1 - v1
*/
RayCast(output: b2RayCastOutput, input: b2RayCastInput, xf: b2Readonly<b2Transform>, _childIndex: number): boolean;
private static ComputeAABB_s_v1;
private static ComputeAABB_s_v2;
/**
* @see b2Shape::ComputeAABB
*/
ComputeAABB(aabb: b2AABB, xf: b2Readonly<b2Transform>, _childIndex: number): void;
/**
* @see b2Shape::ComputeMass
*/
ComputeMass(massData: b2MassData, _density: number): void;
SetupDistanceProxy(proxy: b2DistanceProxy, _index: number): void;
Draw(draw: b2Draw, color: b2Color): void;
}
//# sourceMappingURL=b2_edge_shape.d.ts.map