sdf

package
v0.35.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 15, 2025 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Box

func Box(position, bounds vector3.Float64) sample.Vec3ToFloat

func Intersect

func Intersect(fields ...sample.Vec3ToFloat) sample.Vec3ToFloat

func Line

func Line(start, end vector3.Float64, radius float64) sample.Vec3ToFloat

func MirrorX added in v0.35.0

func MirrorXY added in v0.35.0

func MirrorXYZ added in v0.35.0

func MirrorXYZ(f sample.Vec3ToFloat) sample.Vec3ToFloat

func MirrorXZ added in v0.35.0

func MirrorY added in v0.35.0

func MirrorYZ added in v0.35.0

func MirrorZ added in v0.35.0

func MultipointLine added in v0.35.0

func MultipointLine(points []vector3.Float64, radius float64) sample.Vec3ToFloat

func Plane added in v0.9.0

func Plane(position, normal vector3.Float64, height float64) sample.Vec3ToFloat

https://iquilezles.org/articles/distfunctions/

func RoundedBox added in v0.9.0

func RoundedBox(position, bounds vector3.Float64, roundness float64) sample.Vec3ToFloat

func RoundedCylinder added in v0.9.0

func RoundedCylinder(pos vector3.Float64, radius, topHeight, bodyHeight float64) sample.Vec3ToFloat

https://iquilezles.org/articles/distfunctions/

func Sphere

func Sphere(position vector3.Float64, radius float64) sample.Vec3ToFloat

func Subtract added in v0.9.0

func Subtract(base, subtraction sample.Vec3ToFloat) sample.Vec3ToFloat

func Transform added in v0.35.0

func Transform(field sample.Vec3ToFloat, transformation trs.TRS) sample.Vec3ToFloat

func Translate

func Translate(field sample.Vec3ToFloat, translation vector3.Float64) sample.Vec3ToFloat

func Union

func Union(fields ...sample.Vec3ToFloat) sample.Vec3ToFloat

func VarryingThicknessLine added in v0.9.0

func VarryingThicknessLine(linePoints []LinePoint) sample.Vec3ToFloat

Types

type CubeNode added in v0.35.0

type CubeNode struct {
	Position nodes.Output[vector3.Float64]
	Size     nodes.Output[vector3.Float64]
}

func (CubeNode) Field added in v0.35.0

func (cn CubeNode) Field(out *nodes.StructOutput[sample.Vec3ToFloat])

type IntersectionNode added in v0.35.0

type IntersectionNode struct {
	Fields []nodes.Output[sample.Vec3ToFloat]
}

func (IntersectionNode) Intersection added in v0.35.0

func (n IntersectionNode) Intersection(out *nodes.StructOutput[sample.Vec3ToFloat])

type LineNode added in v0.35.0

type LineNode struct {
	Start  nodes.Output[vector3.Float64]
	End    nodes.Output[vector3.Float64]
	Radius nodes.Output[float64]
}

func (LineNode) Field added in v0.35.0

func (cn LineNode) Field(out *nodes.StructOutput[sample.Vec3ToFloat])

type LinePoint added in v0.9.0

type LinePoint struct {
	Point  vector3.Float64
	Radius float64
}

type LinesNode added in v0.35.0

type LinesNode struct {
	Points nodes.Output[[]vector3.Float64]
	Radius nodes.Output[float64]
}

func (LinesNode) Field added in v0.35.0

func (cn LinesNode) Field(out *nodes.StructOutput[sample.Vec3ToFloat])

type MirrorNode added in v0.35.0

type MirrorNode struct {
	Field nodes.Output[sample.Vec3ToFloat]
}

func (MirrorNode) X added in v0.35.0

func (MirrorNode) XY added in v0.35.0

func (MirrorNode) XYZ added in v0.35.0

func (MirrorNode) XZ added in v0.35.0

func (MirrorNode) Y added in v0.35.0

func (MirrorNode) YZ added in v0.35.0

func (MirrorNode) Z added in v0.35.0

type PlaneNode added in v0.35.0

type PlaneNode struct {
	Position nodes.Output[vector3.Float64]
	Normal   nodes.Output[vector3.Float64]
	Height   nodes.Output[float64]
}

func (PlaneNode) Field added in v0.35.0

func (cn PlaneNode) Field(out *nodes.StructOutput[sample.Vec3ToFloat])

type RoundCubeNode added in v0.35.0

type RoundCubeNode struct {
	Position  nodes.Output[vector3.Float64]
	Size      nodes.Output[vector3.Float64]
	Roundness nodes.Output[float64]
}

func (RoundCubeNode) Field added in v0.35.0

type RoundedConeNode added in v0.35.0

type RoundedConeNode struct {
	A       nodes.Output[vector3.Float64]
	B       nodes.Output[vector3.Float64]
	Radius1 nodes.Output[float64]
	Radius2 nodes.Output[float64]
}

func (RoundedConeNode) Field added in v0.35.0

type RoundedCylinderNode added in v0.35.0

type RoundedCylinderNode struct {
	Position   nodes.Output[vector3.Float64]
	Radius     nodes.Output[float64]
	TopHeight  nodes.Output[float64]
	BodyHeight nodes.Output[float64]
}

func (RoundedCylinderNode) Field added in v0.35.0

type SphereNode added in v0.35.0

type SphereNode struct {
	Position nodes.Output[vector3.Float64]
	Radius   nodes.Output[float64]
}

func (SphereNode) Field added in v0.35.0

type SubtractionNode added in v0.35.0

type SubtractionNode struct {
	A nodes.Output[sample.Vec3ToFloat]
	B nodes.Output[sample.Vec3ToFloat]
}

func (SubtractionNode) Subtract added in v0.35.0

type TransformNode added in v0.35.0

type TransformNode struct {
	Transform nodes.Output[trs.TRS]
	Field     nodes.Output[sample.Vec3ToFloat]
}

func (TransformNode) Result added in v0.35.0

type TranslateNode added in v0.35.0

type TranslateNode struct {
	Position nodes.Output[vector3.Float64]
	Field    nodes.Output[sample.Vec3ToFloat]
}

func (TranslateNode) Result added in v0.35.0

type UnionNode added in v0.35.0

type UnionNode struct {
	Fields []nodes.Output[sample.Vec3ToFloat]
}

func (UnionNode) Union added in v0.35.0

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL