Skip to main content
source

Types


check-vector-collision-with-nav-spheres-info

check-vector-collision-with-nav-spheres-info: structuresource
Fields
u: float
intersect: vector
normal: vector

clip-travel-vector-to-mesh-return-info

clip-travel-vector-to-mesh-return-info: structuresource
Fields
found-boundary: symbol
intersection: vector
boundary-normal: vector
prev-normal: vector
next-normal: vector
poly: nav-poly
gap-poly: nav-poly
edge: int32
vert-prev: vector
vert-0: vector
vert-1: vector
vert-next: vector
nav-control: basicsource
Fields
type: type
flags: nav-control-flags
process: basic
shape: collide-shape
mesh: nav-mesh
gap-event: basic
block-event: basic
current-poly: nav-poly
next-poly: nav-poly
target-poly: nav-poly
portal: nav-route-portal
nearest-y-threshold: meters
event-temp: vector
old-travel: vector
blocked-travel: vector
prev-pos: vector
extra-nav-sphere: vector
travel: vector
target-pos: vector
destination-pos: vector
block-time: time-frame
block-count: float
user-poly: nav-poly
nav-cull-radius: float
num-spheres: int16
max-spheres: int16
sphere: sphere
Methods
debug-draw(obj: nav-control) => nonesource
point-in-bounds?(obj: nav-control, arg0: vector) => symbolsource

Is the point in bounds?

nav-control-method-11(obj: nav-control, arg0: vector) => vectorsource
nav-control-method-12(obj: nav-control, arg0: nav-gap-info) => symbolsource
nav-control-method-13(obj: nav-control, arg0: vector, arg1: vector) => vectorsource
set-current-poly!(obj: nav-control, arg0: nav-poly) => nonesource
set-target-pos!(obj: nav-control, arg0: vector) => nonesource
nav-control-method-16(obj: nav-control, arg0: vector) => nav-polysource
project-onto-nav-mesh(obj: nav-control, arg0: vector, arg1: vector) => vectorsource
find-poly(obj: nav-control, arg0: vector) => nav-polysource
nav-control-method-19(obj: nav-control, arg0: vector, arg1: collide-shape-moving, arg2: vector, arg3: float) => nonesource
project-point-into-tri-3d(obj: nav-control, arg0: nav-poly, arg1: vector, arg2: vector) => vectorsource
nav-control-method-21(obj: nav-control, arg0: vector) => nav-polysource
nav-control-method-22(obj: nav-control, arg0: vector, arg1: float) => symbolsource
nav-control-method-23(obj: nav-control, arg0: vector, arg1: check-vector-collision-with-nav-spheres-info) => floatsource
nav-control-method-24(obj: nav-control, arg0: float, arg1: clip-travel-vector-to-mesh-return-info) => nonesource
is-in-mesh?(obj: nav-control, arg0: vector, arg1: float) => symbolsource
nav-control-method-26(obj: nav-control) => nonesource
nav-control-method-27(obj: nav-control) => nonesource
nav-control-method-28(obj: nav-control, arg0: collide-kind) => nonesource
should-display?(obj: nav-control) => symbolsource
nav-control-method-30(obj: nav-control, arg0: vector, arg1: vector, arg2: vector) => spheresource
intersect-ray-line-segment?(obj: nav-control, arg0: vector, arg1: vector, arg2: vector, arg3: vector) => symbolsource
nav-control-method-32(obj: nav-control, arg0: vector, arg1: vector, arg2: vector, arg3: vector, arg4: float) => symbolsource
nav-control-method-33(obj: nav-control, arg0: vector, arg1: vector, arg2: vector, arg3: vector, arg4: float) => symbolsource
nav-control-method-34: unknown
nav-control-method-35(obj: nav-control, arg0: vector, arg1: vector, arg2: vector, arg3: vector, arg4: float) => nonesource
nav-gap-info: structuresource
Fields
dest: vector
poly: nav-poly
nav-lookup-elem: structuresource
Fields
vec: vector
y-thresh: float
time: uint32
node-offset: uint32
lookup-type: uint8
poly-ind: uint8
dummy0: uint16
dummy: uint32
nav-mesh: basicsource
Fields
type: type
user-list: engine
poly-lookup-history: uint8
debug-time: uint8
static-sphere-count: uint8
static-sphere: inline-array
bounds: sphere
origin: vector
cache: nav-lookup-elem
node-count: int32
nodes: inline-array
vertex-count: int32
vertex: inline-array
poly-count: int32
poly: inline-array
route: inline-array
Methods
tri-centroid-world(obj: nav-mesh, arg0: nav-poly, arg1: vector) => vectorsource
tri-centroid-local(obj: nav-mesh, arg0: nav-poly, arg1: vector) => vectorsource
get-adj-poly(obj: nav-mesh, arg0: nav-poly, arg1: nav-poly, arg2: symbol) => nav-polysource
setup-portal(obj: nav-mesh, arg0: nav-poly, arg1: nav-poly, arg2: nav-route-portal) => objectsource
initialize-mesh!(obj: nav-mesh) => nonesource
move-along-nav-ray!(obj: nav-mesh, arg0: nav-ray) => nonesource
try-move-along-ray(obj: nav-mesh, arg0: nav-poly, arg1: vector, arg2: vector, arg3: float) => meterssource
nav-mesh-method-16(obj: nav-mesh, arg0: vector, arg1: nav-poly, arg2: vector, arg3: symbol, arg4: float, arg5: clip-travel-vector-to-mesh-return-info) => nonesource
update-route-table(obj: nav-mesh) => nonesource
nav-mesh-method-18(obj: nav-mesh, arg0: int, arg1: vector, arg2: int, arg3: pointer, arg4: int) => nonesource
compute-bounding-box(obj: nav-mesh, arg0: vector, arg1: vector) => nonesource
debug-draw-poly(obj: nav-mesh, arg0: nav-poly, arg1: rgba) => nonesource
point-in-poly?(obj: nav-mesh, arg0: nav-poly, arg1: vector) => symbolsource
find-opposite-vertices(obj: nav-mesh, arg0: nav-poly, arg1: nav-poly) => uintsource
nav-mesh-method-23(obj: nav-mesh, arg0: nav-poly, arg1: vector, arg2: vector, arg3: vector, arg4: nav-route-portal) => vectorsource
closest-point-on-boundary(obj: nav-mesh, arg0: nav-poly, arg1: vector, arg2: vector) => vectorsource
project-point-into-tri-3d(obj: nav-mesh, arg0: nav-poly, arg1: vector, arg2: vector) => nonesource
project-point-into-tri-2d(obj: nav-mesh, arg0: nav-poly, arg1: vector, arg2: vector) => vectorsource
find-poly-fast(obj: nav-mesh, arg0: vector, arg1: meters) => nav-polysource
find-poly(obj: nav-mesh, arg0: vector, arg1: meters, arg2: pointer) => nav-polysource
is-in-mesh?(obj: nav-mesh, arg0: vector, arg1: float, arg2: meters) => symbolsource
nav-node: structuresource
Fields
center-x: float
center-y: float
center-z: float
type: uint16
parent-offset: uint16
center: vector
radius-x: float
radius-y: float
radius-z: float
left-offset: uint16
right-offset: uint16
num-tris: uint32
radius: vector
scale-x: float
first-tris: uint8
scale-z: float
last-tris: uint8
scale: vector
nav-poly: structuresource
Fields
id: uint8
vertex: uint8
adj-poly: uint8
pat: uint8
nav-ray: structuresource
Fields
current-pos: vector
dir: vector
dest-pos: vector
current-poly: nav-poly
next-poly: nav-poly
len: meters
last-edge: int8
terminated: symbol
reached-dest: symbol
hit-boundary: symbol
hit-gap: symbol
nav-route-portal: structuresource
Fields
next-poly: nav-poly
vertex: nav-vertex
edge-index: int8
nav-sphere: structuresource
Fields
trans: sphere
nav-vertex: vectorsource
Fields
x: float
y: float
z: float
w: float
data: float
quad: uint128

Functions


has-nav-mesh?

has-nav-mesh?(arg0: entity-actor) => symbolsource

Does the actor have a nav mesh? Either loaded an in the nav-mesh field, or in
the res-lump.

nav-mesh-connect(proc: process, trans: trsqv, nav-cont: nav-control) => nav-meshsource
source

Types


cfs-travel-vec

cfs-travel-vec: structuresource
Fields
dir: vector
delta-angle: float

cfs-work

cfs-work: structuresource
Fields
desired-travel-dist: float
desired-angle: float
max-dist: float
old-angle: float
modified: int32
blocked-mask: uint64
travel: vector
current: vector
new-travel: cfs-travel-vec
temp-travel: cfs-travel-vec
prev-dir: vector
attempt-dir: vector
tangent: vector
nav-control-cfs-work: structuresource
Fields
in-dir: vector
right-dir: vector
best-dir: vector
temp-dir: vector
away-dir: vector
best-dir-angle: degrees
ignore-mask: uint64
initial-ignore-mask: uint64
i-sphere: int32
i-first-sphere: int32
i-inside-sphere: int32
inside-sphere-dist: float
sign: float
travel-len: float
dist2: float
inside-dist: float
rand-angle: float
dir-update: basic
debug-offset: vector

Functions


add-collide-shape-spheres

add-collide-shape-spheres(arg0: nav-control, arg1: collide-shape, arg2: vector) => nonesource

add-nav-sphere

add-nav-sphere(arg0: nav-control, arg1: vector) => nonesource

choose-travel-portal-vertex

choose-travel-portal-vertex(arg0: nav-mesh, arg1: nav-route-portal, arg2: nav-poly, arg3: vector) => intsource

circle-tangent-directions

circle-tangent-directions(arg0: vector, arg1: vector, arg2: vector, arg3: vector) => vectorsource

circle-triangle-intersection-proc?

circle-triangle-intersection-proc?(arg0: vector, arg1: float, arg2: inline-array) => symbolsource

circle-triangle-intersection?

circle-triangle-intersection?(arg0: vector, arg1: float, arg2: inline-array) => symbolsource

clip-vector-to-halfspace!

clip-vector-to-halfspace!(arg0: vector, arg1: float, arg2: float, arg3: float) => floatsource

compute-dir-parm

compute-dir-parm(arg0: vector, arg1: vector, arg2: vector) => floatsource

debug-nav-validate-current-poly

debug-nav-validate-current-poly(arg0: nav-mesh, arg1: nav-poly, arg2: vector) => symbolsource

debug-report-nav-stats

debug-report-nav-stats() => nonesource

dec-mod3

dec-mod3(arg0: int) => intsource

entity-nav-login

entity-nav-login(arg0: entity-actor) => nonesource

find-closest-circle-ray-intersection

find-closest-circle-ray-intersection(arg0: vector, arg1: vector, arg2: float, arg3: int, arg4: inline-array, arg5: int) => intsource

inc-mod3

inc-mod3(arg0: int) => intsource

init-ray

init-ray(arg0: nav-ray) => symbolsource

init-ray-dir-local

init-ray-dir-local(arg0: nav-ray, arg1: nav-poly, arg2: vector, arg3: vector, arg4: float) => symbolsource

init-ray-local

init-ray-local(arg0: nav-ray, arg1: nav-poly, arg2: vector, arg3: vector) => symbolsource
nav-mesh-lookup-route(arg0: nav-mesh, arg1: int, arg2: int) => uintsource
nav-mesh-update-route-table(arg0: nav-mesh, arg1: int, arg2: int, arg3: uint) => uintsource
nav-ray-test(arg0: nav-mesh, arg1: nav-poly, arg2: vector, arg3: vector) => meterssource
nav-ray-test-local?(arg0: nav-mesh, arg1: nav-poly, arg2: vector, arg3: vector) => symbolsource
nav-sphere-from-cam() => nonesource

pke-nav-hack

pke-nav-hack() => nonesource

point-inside-poly?

point-inside-poly?(arg0: nav-mesh, arg1: uint, arg2: vector, arg3: float) => symbolsource

point-inside-rect?

point-inside-rect?(arg0: nav-node, arg1: vector, arg2: float) => symbolsource

point-triangle-distance-min

point-triangle-distance-min(arg0: vector, arg1: float, arg2: inline-array) => floatsource

ray-ccw-line-segment-intersection?

ray-ccw-line-segment-intersection?(arg0: vector, arg1: vector, arg2: vector, arg3: vector) => symbolsource

ray-line-segment-intersection?

ray-line-segment-intersection?(arg0: vector, arg1: vector, arg2: vector, arg3: vector) => symbolsource

recursive-inside-poly

recursive-inside-poly(arg0: nav-mesh, arg1: nav-node, arg2: vector, arg3: float) => intsource

sign-bit

sign-bit(arg0: int) => intsource

test-xz-point-on-line-segment?

test-xz-point-on-line-segment?(arg0: vector, arg1: vector, arg2: vector, arg3: float) => symbolsource

vu-point-triangle-intersection?

vu-point-triangle-intersection?(arg0: vector, arg1: vector, arg2: vector, arg3: vector) => symbolsource

Variables


*clip-for-spheres-timer*

*clip-for-spheres-timer*: stopwatchsource

*color-black*

*color-black*: rgbasource

*color-blue*

*color-blue*: rgbasource

*color-cyan*

*color-cyan*: rgbasource

*color-dark-blue*

*color-dark-blue*: rgbasource

*color-dark-cyan*

*color-dark-cyan*: rgbasource

*color-dark-green*

*color-dark-green*: rgbasource

*color-dark-magenta*

*color-dark-magenta*: rgbasource

*color-dark-red*

*color-dark-red*: rgbasource

*color-dark-yellow*

*color-dark-yellow*: rgbasource

*color-gray*

*color-gray*: rgbasource

*color-green*

*color-green*: rgbasource

*color-light-blue*

*color-light-blue*: rgbasource

*color-light-cyan*

*color-light-cyan*: rgbasource

*color-light-green*

*color-light-green*: rgbasource

*color-light-magenta*

*color-light-magenta*: rgbasource

*color-light-red*

*color-light-red*: rgbasource

*color-light-yellow*

*color-light-yellow*: rgbasource

*color-magenta*

*color-magenta*: rgbasource

*color-orange*

*color-orange*: rgbasource

*color-red*

*color-red*: rgbasource

*color-white*

*color-white*: rgbasource

*color-yellow*

*color-yellow*: rgbasource

*debug-nav-ray*

*debug-nav-ray*: nav-raysource

*debug-nav-travel*

*debug-nav-travel*: symbolsource

*debug-nav*

*debug-nav*: symbolsource

*debug-offset*

*debug-offset*: vectorsource

*debug-output*

*debug-output*: symbolsource

*debug-ray-offset*

*debug-ray-offset*: vectorsource

*debug-ray-test-capture-mode*

*debug-ray-test-capture-mode*: symbolsource

*debug-ray-test-capture-output*

*debug-ray-test-capture-output*: symbolsource

*debug-ray-test*

*debug-ray-test*: nav-raysource

*debug-tests*

*debug-tests*: intsource

*debug-traverse*

*debug-traverse*: intsource

*default-nav-mesh*

*default-nav-mesh*: nav-meshsource

*edge-mask-table*

*edge-mask-table*: arraysource

*edge-vert0-table*

*edge-vert0-table*: arraysource

*edge-vert1-table*

*edge-vert1-table*: arraysource

*find-poly-timer*

*find-poly-timer*: stopwatchsource
*nav-last-triangle-test-count*: intsource
*nav-one-third*: vectorsource
*nav-patch-route-table*: symbolsource
*nav-timer-enable*: symbolsource
*nav-timer*: stopwatchsource
*nav-triangle-test-count*: intsource
*nav-update-route-table-ray-count*: intsource
*nav-update-route-table-route-count*: intsource

*test-ray-dest-pos*

*test-ray-dest-pos*: vectorsource

*test-ray-src-pos*

*test-ray-src-pos*: vectorsource

*test-ray-start-poly-id*

*test-ray-start-poly-id*: intsource

*travel-timer*

*travel-timer*: stopwatchsource