Appearance
@bendyline/molen-client/vehicles
Molen rendering client: three.js wrapper, snapshot sync, interpolation.
ts
import { /* … */ } from '@bendyline/molen-client/vehicles';Interfaces
VehicleCameraOptions
Properties
lookPitch?
ts
optional lookPitch?: number;lookYaw?
ts
optional lookYaw?: number;obstructionDistance?
ts
optional obstructionDistance?: (from, to) => number | undefined;Distance to the first static obstruction between two absolute world points.
Parameters
from
[number, number, number]
to
[number, number, number]
Returns
number | undefined
view
ts
view: "cockpit" | "chase";VehicleCameraPose
Extended by
Properties
lookAt
ts
lookAt: [number, number, number];pitch
ts
pitch: number;position
ts
position: [number, number, number];yaw
ts
yaw: number;VehicleProxyDimensions
The dimensions a vehicle proxy is built from (a VehicleSpec satisfies it).
Properties
height
ts
height: number;length
ts
length: number;wheelbase
ts
wheelbase: number;wheelRadius
ts
wheelRadius: number;wheelTrack
ts
wheelTrack: number;width
ts
width: number;VehicleVisual
Properties
interior?
ts
optional interior?: ModelSignalVisual;object
ts
object: Object3D;Methods
dispose()
ts
dispose(): void;Returns
void
update()
ts
update(
steer,
wheelAngle,
signals?
): void;Parameters
steer
number
wheelAngle
number
signals?
Readonly<Record<string, number | undefined>>
Returns
void
Type Aliases
VehicleInteriorSignals
ts
type VehicleInteriorSignals = ModelSignals;VehicleInteriorVisual
ts
type VehicleInteriorVisual = ModelSignalVisual;Variables
vehicleProxyMaterial
ts
const vehicleProxyMaterial: THREE.MeshStandardMaterial;The shared vertex-coloured material of parked and proxy vehicles.
Functions
createParkedVehicleBatch()
ts
function createParkedVehicleBatch(placements, origin?): Group;Dormant terrain-owned cars merged into one static mesh per tile. A plain mesh shares its compiled shader with every other tile; an instanced batch per model and paint would build one of its own. userData.vehicleIds[i] owns vertex range userData.vehicleRanges[2i..2i+1]; hide and restore a car with setParkedVehicleHidden.
Parameters
placements
readonly VehiclePlacement[]
origin?
[number, number]
Returns
Group
createVehicleInteriorVisual()
ts
function createVehicleInteriorVisual(model, spec): ModelSignalVisual;Vehicle convenience wrapper around the platform's model-signal binding system.
Parameters
model
Object3D
spec
VehicleInteriorSpec
Returns
createVehicleVisual()
ts
function createVehicleVisual(model, vehicle): VehicleVisual;Bind a loaded entity GLB to generic wheel/steering animation using external node names.
Parameters
model
Object3D
vehicle
VehicleData
Returns
isParkedVehicleHidden()
ts
function isParkedVehicleHidden(batch, index): boolean;Whether setParkedVehicleHidden currently hides car index of a parked batch.
Parameters
batch
Mesh
index
number
Returns
boolean
setParkedVehicleHidden()
ts
function setParkedVehicleHidden(
batch,
index,
hidden
): boolean;Hide (collapse to a point) or restore one car of a parked batch, e.g. while its detailed model or a driven entity stands in for it. Returns whether the geometry changed.
Parameters
batch
Mesh
index
number
hidden
boolean
Returns
boolean
vehicleCameraPose()
ts
function vehicleCameraPose(
transform,
spec,
options
): VehicleCameraPose;Seat-space cockpit and collision-shortened chase views for any vehicle host.
Parameters
transform
pos
[number, number, number]
rot
[number, number, number, number]
spec
VehicleSpec
options
Returns
vehicleProxyGeometry()
ts
function vehicleProxyGeometry(dimensions): BufferGeometry;The parked-car proxy shape with a white body, for instanced rendering: per-instance paint comes from instanceColor (three multiplies vertex colours by it, so glass and tyres stay dark). Cached by dimensions; never dispose the returned geometry.
Parameters
dimensions
Returns
BufferGeometry