UNPKG

@box2d/debug-draw

Version:

Debug drawing helper for @box2d

74 lines 2.69 kB
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