rc-js-util
Version:
A collection of TS and C++ utilities to help writing performant and correct applications, achieved through strict typing and (removable) invariant checking.
688 lines (294 loc) • 7.32 kB
Markdown
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) > [rc-js-util](./rc-js-util.md) > [Vec2](./rc-js-util.vec2.md)
## Vec2 class
Vector 2.
**Signature:**
```typescript
export declare abstract class Vec2<TArray extends TTypedArray> extends ATypedArrayTuple<2, TArray>
```
**Extends:** [ATypedArrayTuple](./rc-js-util.atypedarraytuple.md)<!-- --><2, TArray>
## Remarks
See static properties for constructors. Instances are not an extension of this class, but of the static members.
## Properties
<table><thead><tr><th>
Property
</th><th>
Modifiers
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
["0"](./rc-js-util.vec2._0_.md)
</td><td>
</td><td>
number
</td><td>
x
</td></tr>
<tr><td>
["1"](./rc-js-util.vec2._1_.md)
</td><td>
</td><td>
number
</td><td>
y
</td></tr>
<tr><td>
[constructor](./rc-js-util.vec2.constructor.md)
</td><td>
</td><td>
[IVec2Ctor](./rc-js-util.ivec2ctor.md)<!-- --><TArray>
</td><td>
</td></tr>
<tr><td>
[constructors](./rc-js-util.vec2.constructors.md)
</td><td>
`protected`
`static`
</td><td>
Map<import("../t-typed-array-ctor.js").[TFullSetTypedArrayCtor](./rc-js-util.tfullsettypedarrayctor.md)<!-- -->, Function>
</td><td>
</td></tr>
<tr><td>
[f32](./rc-js-util.vec2.f32.md)
</td><td>
`static`
</td><td>
[IVec2Ctor](./rc-js-util.ivec2ctor.md)<!-- --><Float32Array>
</td><td>
</td></tr>
<tr><td>
[f64](./rc-js-util.vec2.f64.md)
</td><td>
`static`
</td><td>
[IVec2Ctor](./rc-js-util.ivec2ctor.md)<!-- --><Float64Array>
</td><td>
</td></tr>
<tr><td>
[i16](./rc-js-util.vec2.i16.md)
</td><td>
`static`
</td><td>
[IVec2Ctor](./rc-js-util.ivec2ctor.md)<!-- --><Int16Array>
</td><td>
</td></tr>
<tr><td>
[i32](./rc-js-util.vec2.i32.md)
</td><td>
`static`
</td><td>
[IVec2Ctor](./rc-js-util.ivec2ctor.md)<!-- --><Int32Array>
</td><td>
</td></tr>
<tr><td>
[i64](./rc-js-util.vec2.i64.md)
</td><td>
`static`
</td><td>
null
</td><td>
</td></tr>
<tr><td>
[i8](./rc-js-util.vec2.i8.md)
</td><td>
`static`
</td><td>
[IVec2Ctor](./rc-js-util.ivec2ctor.md)<!-- --><Int8Array>
</td><td>
</td></tr>
<tr><td>
[TTypeGuardVec2](./rc-js-util.vec2.ttypeguardvec2.md)
</td><td>
</td><td>
true
</td><td>
</td></tr>
<tr><td>
[u16](./rc-js-util.vec2.u16.md)
</td><td>
`static`
</td><td>
[IVec2Ctor](./rc-js-util.ivec2ctor.md)<!-- --><Uint16Array>
</td><td>
</td></tr>
<tr><td>
[u32](./rc-js-util.vec2.u32.md)
</td><td>
`static`
</td><td>
[IVec2Ctor](./rc-js-util.ivec2ctor.md)<!-- --><Uint32Array>
</td><td>
</td></tr>
<tr><td>
[u64](./rc-js-util.vec2.u64.md)
</td><td>
`static`
</td><td>
null
</td><td>
</td></tr>
<tr><td>
[u8](./rc-js-util.vec2.u8.md)
</td><td>
`static`
</td><td>
[IVec2Ctor](./rc-js-util.ivec2ctor.md)<!-- --><Uint8Array>
</td><td>
</td></tr>
<tr><td>
[u8c](./rc-js-util.vec2.u8c.md)
</td><td>
`static`
</td><td>
[IVec2Ctor](./rc-js-util.ivec2ctor.md)<!-- --><Uint8ClampedArray>
</td><td>
</td></tr>
</tbody></table>
## Methods
<table><thead><tr><th>
Method
</th><th>
Modifiers
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
[add(\_vec, \_result)](./rc-js-util.vec2.add.md)
</td><td>
</td><td>
</td></tr>
<tr><td>
[bound2d(\_range)](./rc-js-util.vec2.bound2d.md)
</td><td>
</td><td>
If this point is outside of the range, set that dimension to the extrema of the range.
</td></tr>
<tr><td>
[castToBaseType()](./rc-js-util.vec2.casttobasetype.md)
</td><td>
</td><td>
Although the typed array tuples extend a typed array, they are not structurally compatible. This function returns the argument passed without modification but cast as the underlying storage type, e.g. Float32Array.
</td></tr>
<tr><td>
[copyFromBuffer(\_memoryDataView, \_pointer, \_littleEndian)](./rc-js-util.vec2.copyfrombuffer.md)
</td><td>
</td><td>
If endianness is not supplied the platform's endianness will be used.
</td></tr>
<tr><td>
[copyToBuffer(\_memoryDataView, \_pointer, \_littleEndian)](./rc-js-util.vec2.copytobuffer.md)
</td><td>
</td><td>
If endianness is not supplied the platform's endianness will be used.
</td></tr>
<tr><td>
[dotProduct(\_vec)](./rc-js-util.vec2.dotproduct.md)
</td><td>
</td><td>
</td></tr>
<tr><td>
[getCtor(ctor)](./rc-js-util.vec2.getctor.md)
</td><td>
`static`
</td><td>
</td></tr>
<tr><td>
[getLoggableValue()](./rc-js-util.vec2.getloggablevalue.md)
</td><td>
</td><td>
</td></tr>
<tr><td>
[getMagnitude()](./rc-js-util.vec2.getmagnitude.md)
</td><td>
</td><td>
</td></tr>
<tr><td>
[getMagnitudeSquared()](./rc-js-util.vec2.getmagnitudesquared.md)
</td><td>
</td><td>
</td></tr>
<tr><td>
[getNormal(\_result)](./rc-js-util.vec2.getnormal.md)
</td><td>
</td><td>
Returns the normal to this vector.
</td></tr>
<tr><td>
[getX()](./rc-js-util.vec2.getx.md)
</td><td>
</td><td>
</td></tr>
<tr><td>
[getY()](./rc-js-util.vec2.gety.md)
</td><td>
</td><td>
</td></tr>
<tr><td>
[isEqualTo(\_other)](./rc-js-util.vec2.isequalto.md)
</td><td>
</td><td>
Component-wise equals.
</td></tr>
<tr><td>
[mat3Multiply(\_mat, \_result)](./rc-js-util.vec2.mat3multiply.md)
</td><td>
</td><td>
</td></tr>
<tr><td>
[normalize(\_result)](./rc-js-util.vec2.normalize.md)
</td><td>
</td><td>
Returns a unit vector in the direction of this vector.
</td></tr>
<tr><td>
[scalarDivide(\_value, \_result)](./rc-js-util.vec2.scalardivide.md)
</td><td>
</td><td>
</td></tr>
<tr><td>
[scalarMultiply(\_value, \_result)](./rc-js-util.vec2.scalarmultiply.md)
</td><td>
</td><td>
</td></tr>
<tr><td>
[setX(\_x)](./rc-js-util.vec2.setx.md)
</td><td>
</td><td>
</td></tr>
<tr><td>
[setY(\_y)](./rc-js-util.vec2.sety.md)
</td><td>
</td><td>
</td></tr>
<tr><td>
[subtract(\_vec, \_result)](./rc-js-util.vec2.subtract.md)
</td><td>
</td><td>
</td></tr>
<tr><td>
[translate2d(\_dx, \_dy)](./rc-js-util.vec2.translate2d.md)
</td><td>
</td><td>
Shifts this position by the arguments.
</td></tr>
<tr><td>
[update(\_x, \_y)](./rc-js-util.vec2.update.md)
</td><td>
</td><td>
</td></tr>
<tr><td>
[vec2Divide(\_value, \_result)](./rc-js-util.vec2.vec2divide.md)
</td><td>
</td><td>
Divide `this` by `_value`<!-- -->.
</td></tr>
<tr><td>
[vec2Multiply(\_value, \_result)](./rc-js-util.vec2.vec2multiply.md)
</td><td>
</td><td>
Multiply `this` by `_value`<!-- -->.
</td></tr>
</tbody></table>