pixi-wheels

Pointer

pixi-wheels


pixi-wheels / index / Pointer

Class: Pointer

Defined in: pointer/Pointer.ts:65

A pointer: the fixed mark a ring is read against.

Owns its skin’s view, seats it on the ring, detects the dividers that pass under it each frame (one crossing per divider, however fast the ring turns) and runs the tongue against the ring’s pegs: pushed aside as a peg comes through, carried on its crown, released into a spring. See FlapConfig for the knobs.

Implements#

Constructors#

Constructor#

new Pointer(config: PointerConfig, skin: PointerSkin): Pointer;

Defined in: pointer/Pointer.ts:85

Parameters#

ParameterType
configPointerConfig
skinPointerSkin

Returns#

Pointer

Properties#

PropertyModifierTypeDefined in
anglereadonlynumberpointer/Pointer.ts:67
facingreadonlyPointerFacingpointer/Pointer.ts:68
idreadonlystringpointer/Pointer.ts:66
skinreadonlyPointerSkinpointer/Pointer.ts:71
tipInsetreadonlynumberpointer/Pointer.ts:69
viewreadonlyContainer<ContainerChild>pointer/Pointer.ts:70

Accessors#

deflection#

Get Signature#

get deflection(): number;

Defined in: pointer/Pointer.ts:117

Current flap deflection, degrees.

Returns

number


dragDeg#

Get Signature#

get dragDeg(): number;

Defined in: pointer/Pointer.ts:127

The angular hold this tongue is asking of the ring right now, degrees, signed against the direction of travel. Zero unless flap.drag is set. The ring adds it to the disc’s drawn rotation only: the logical rotation, the crossings and the landing never see it.

Returns

number


engagedPeg#

Get Signature#

get engagedPeg(): number | null;

Defined in: pointer/Pointer.ts:132

Index into the ring’s peg angles of the peg carrying the tongue right now, or null.

Returns

number | null


flap#

Get Signature#

get flap(): 
  | Readonly<Required<FlapConfig>>
  | null;

Defined in: pointer/Pointer.ts:137

The flap settings in force, or null for a rigid pointer.

Returns

| Readonly<Required<FlapConfig>> | null


isDestroyed#

Get Signature#

get isDestroyed(): boolean;

Defined in: pointer/Pointer.ts:456

Returns

boolean

Implementation of#

Disposable.isDestroyed


pinRadius#

Get Signature#

get pinRadius(): number;

Defined in: pointer/Pointer.ts:142

Distance from the pin to the hub, px, after layout().

Returns

number


tipRadius#

Get Signature#

get tipRadius(): number;

Defined in: pointer/Pointer.ts:147

Distance from the tip to the hub, px, after layout().

Returns

number

Methods#

contactHalfWidth()#

contactHalfWidth(pegs: ResolvedPegs): number;

Defined in: pointer/Pointer.ts:166

Half the width of the contact zone at the peg ring, px: peg radius plus half the tongue tip.

Parameters#

ParameterType
pegsResolvedPegs

Returns#

number


destroy()#

destroy(): void;

Defined in: pointer/Pointer.ts:460

Returns#

void

Implementation of#

Disposable.destroy


layout()#

layout(outerRadius: number, innerRadius: number): void;

Defined in: pointer/Pointer.ts:97

Seat the view on the ring: base rotation and position from the radii.

Parameters#

ParameterType
outerRadiusnumber
innerRadiusnumber

Returns#

void


localAngle()#

localAngle(rotationDeg: number): number;

Defined in: pointer/Pointer.ts:171

The wheel-local angle under this pointer for a disc rotation.

Parameters#

ParameterType
rotationDegnumber

Returns#

number


reaches()#

reaches(pegs: ResolvedPegs): boolean;

Defined in: pointer/Pointer.ts:157

True when the peg ring runs under the tongue somewhere between its pin and its tip, which is the only way a peg can push it. Pegs deeper than the tip pass beneath it; pegs beyond the pin would have to strike the heel, which is not a thing a flapper does.

Parameters#

ParameterType
pegsResolvedPegs

Returns#

boolean


update()#

update(
   prevRotation: number, 
   rotation: number, 
   dt: number, 
   geometry: RingGeometry, 
   pegs?: ResolvedPegs | null, 
   dragOffset?: number
): PointerCrossing[];

Defined in: pointer/Pointer.ts:180

Advance one frame. Returns every divider that passed under the pointer between prevRotation and rotation, in the order they passed. pegs drives the tongue; without them a flapping pointer stays at rest.

Parameters#

ParameterTypeDefault value
prevRotationnumberundefined
rotationnumberundefined
dtnumberundefined
geometryRingGeometryundefined
pegsResolvedPegs | nullnull
dragOffsetnumber0

Returns#

PointerCrossing[]