recover split2DPlane and split3DModel from parts.go
This commit is contained in:
parent
d007afd5b3
commit
30e8cba298
|
@ -5,6 +5,7 @@ import (
|
|||
|
||||
"github.com/deadsy/sdfx/sdf"
|
||||
v2 "github.com/deadsy/sdfx/vec/v2"
|
||||
v3 "github.com/deadsy/sdfx/vec/v3"
|
||||
)
|
||||
|
||||
func loggedMovement(input sdf.SDF2, displacement sdf.V2, label string) sdf.SDF2 {
|
||||
|
@ -33,3 +34,32 @@ func trapezoid(base v2.Vec, xChange float64) sdf.SDF2 {
|
|||
|
||||
return trapezoid
|
||||
}
|
||||
|
||||
// split2DPlane splits a 2D plane in half. 0 is right side and 1 is left side.
|
||||
func split2DPlane(plane sdf.SDF2, height float64) []sdf.SDF2 {
|
||||
planes := make([]sdf.SDF2, 2)
|
||||
|
||||
rPlane := sdf.Cut2D(plane, v2.Vec{X: 0, Y: 0}, v2.Vec{X: 0, Y: 1})
|
||||
planes[0] = rPlane
|
||||
|
||||
lPlane := sdf.Transform2D(sdf.Cut2D(sdf.Transform2D(plane, sdf.MirrorY()), v2.Vec{X: 0, Y: 0}, v2.Vec{X: 0, Y: 1}), sdf.MirrorY())
|
||||
planes[0] = lPlane
|
||||
|
||||
return planes
|
||||
}
|
||||
|
||||
// split3DModel splits a 3D model in half. 0 is right side and 1 is left side.
|
||||
func split3DModel(model sdf.SDF3) []sdf.SDF3 {
|
||||
models := make([]sdf.SDF3, 2)
|
||||
//plane := sdf.Slice2D(model, v3.Vec{X: 0, Y: 0, Z: 0}, v3.Vec{X: 0, Y: 0, Z: 0})
|
||||
|
||||
//rPlane := sdf.Cut2D(plane, v2.Vec{X: 0, Y: 0}, v2.Vec{X: 0, Y: 1})
|
||||
rModel := sdf.Cut3D(model, v3.Vec{X: 0, Y: 0, Z: 0}, v3.Vec{X: 0, Y: 1, Z: 0})
|
||||
models[0] = rModel
|
||||
|
||||
//lPlane := sdf.Transform2D(sdf.Cut2D(sdf.Transform2D(plane, sdf.MirrorY()), v2.Vec{X: 0, Y: 0}, v2.Vec{X: 0, Y: 1}), sdf.MirrorY())
|
||||
lModel := sdf.Transform3D(sdf.Cut3D(sdf.Transform3D(model, sdf.MirrorXY()), v3.Vec{X: 0, Y: 0, Z: 0}, v3.Vec{X: 0, Y: 1, Z: 0}), sdf.MirrorXY())
|
||||
models[1] = lModel
|
||||
|
||||
return models
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue