SuperPrimitive
Extends:
Indirect Implements:
The super primitive.
A function that is able to represent a wide range of conic/rectangular-radial primitives of genus 0 and 1: (round) box, sphere, cylinder, capped cone, torus, capsule, pellet, pipe, etc.
Reference: https://www.shadertoy.com/view/MsVGWG
Static Method Summary
Static Public Methods | ||
public static |
create(preset: SuperPrimitivePreset): * Creates a new primitive using the specified preset. |
Constructor Summary
Public Constructor | ||
public |
constructor(parameters: Object, material: Number) Constructs a new super primitive. |
Method Summary
Public Methods | ||
public |
computeBoundingBox(): Box3 Calculates the bounding box of this SDF. |
|
public |
Samples the volume's density at the given point in space. |
|
public |
Serialises this SDF. |
|
public |
setRadii(x: Number, y: Number, z: Number): SuperPrimitive Sets the corner radii. |
|
public |
Sets the size and genus weight. |
Inherited Summary
From class SignedDistanceFunction | ||
public |
inverseTransformation: Matrix4 The inverted transformation matrix. |
|
public |
A material index. |
|
public |
The operation type. |
|
public |
position: Vector3 The positional translation. |
|
public |
quaternion: Quaternion The rotation. |
|
public |
scale: Vector3 The scale. |
|
public |
The type of this SDF. |
|
protected |
boundingBox: Box3 The axis-aligned bounding box of this SDF. |
|
public |
createTransferList(transferList: Array): Transferable[] Creates a list of transferable items. |
|
public |
getBoundingBox(recursive: Boolean): Box3 Calculates the AABB of this SDF if it doesn't exist yet and returns it. |
|
public |
getTransformation(matrix: Matrix4): Matrix4 Composes a transformation matrix using the translation, rotation and scale of this SDF. |
|
public |
Intersects the given SDF with this one. |
|
public |
Samples the volume's density at the given point in space. |
|
public |
Serialises this SDF. |
|
public |
setMaterial(material: Material): SignedDistanceFunction Sets the material. |
|
public |
setOperationType(operation: OperationType): SignedDistanceFunction Sets the CSG operation type of this SDF. |
|
public |
Subtracts the given SDF from this one. |
|
public |
Translates this SDF into a CSG expression. |
|
public |
Returns a plain object that describes this SDF. |
|
public |
Adds the given SDF to this one. |
|
public |
Updates the inverse transformation matrix. |
|
protected |
computeBoundingBox(): Box3 Calculates the bounding box of this SDF. |
Static Public Methods
public static create(preset: SuperPrimitivePreset): * source
Creates a new primitive using the specified preset.
Params:
Name | Type | Attribute | Description |
preset | SuperPrimitivePreset | The super primitive preset. |
Return:
* |
Public Constructors
public constructor(parameters: Object, material: Number) source
Constructs a new super primitive.
See SuperPrimitivePreset for a list of default configurations.
Override:
SignedDistanceFunction#constructorExample:
const cube = SuperPrimitive.create(SuperPrimitivePreset.CUBE);
Public Methods
public computeBoundingBox(): Box3 source
Calculates the bounding box of this SDF.
Return:
Box3 | The bounding box. |
public sample(position: Vector3): Number source
Samples the volume's density at the given point in space.
Override:
SignedDistanceFunction#sampleParams:
Name | Type | Attribute | Description |
position | Vector3 | A position. |
public serialize(deflate: Boolean): Object source
Serialises this SDF.
Override:
SignedDistanceFunction#serializeParams:
Name | Type | Attribute | Description |
deflate | Boolean |
|
Whether the data should be compressed if possible. |
public setRadii(x: Number, y: Number, z: Number): SuperPrimitive source
Sets the corner radii.