arcade/fightstick/test.go

46 lines
1.5 KiB
Go

package main
import (
"github.com/deadsy/sdfx/sdf"
v2 "github.com/deadsy/sdfx/vec/v2"
v3 "github.com/deadsy/sdfx/vec/v3"
)
// test button diameter and neutrik holes
func holeTest() sdf.SDF3 {
body := sdf.Box2D(v2.Vec{X: 60, Y: 40}, 0)
body = sdf.Difference2D(body, sdf.Transform2D(neutrik(), sdf.Translate2d(v2.Vec{X: -16, Y: 0})))
button, _ := sdf.Circle2D(BUTTON30_DIAMETER / 2)
body = sdf.Difference2D(body, sdf.Transform2D(button, sdf.Translate2d(v2.Vec{X: 13, Y: 0})))
return sdf.Extrude3D(body, 2)
}
// 7.2 is a good number for M4 screws
// 5.6 is a good number for M3 Screws
func countersinkTest() sdf.SDF3 {
base2D := sdf.Box2D(v2.Vec{X: 10, Y: 10}, 0)
hole2D, _ := sdf.Circle2D(M3_SCREW_DIAMETER / 2)
base2D = sdf.Difference2D(base2D, hole2D)
base := sdf.Extrude3D(base2D, 5)
// cone 3d rapidly balloons the filesize lol
cone, _ := sdf.Cone3D(2.3, M3_SCREW_DIAMETER/2, 5.6/2, 0)
/* indent2D, _ := sdf.Circle2D(9.2 / 2)
indent := sdf.Extrude3D(indent2D, 2.3)
indent = sdf.Transform3D(indent, sdf.Translate3d(v3.Vec{X: 0, Y: 0, Z: base.BoundingBox().Max.Z}))
base = sdf.Difference3D(base, indent)*/
cone = sdf.Transform3D(cone, sdf.Translate3d(v3.Vec{X: 0, Y: 0, Z: base.BoundingBox().Max.Z - cone.BoundingBox().Max.Z}))
base = sdf.Difference3D(base, cone)
return base
}
func stickMountTest() sdf.SDF3 {
base2D := sdf.Box2D(v2.Vec{X: 100, Y: 55}, 0)
joystick := joystick(v2.Vec{X: 84, Y: 10 + 10 + 20})
base2D = sdf.Difference2D(base2D, joystick)
return sdf.Extrude3D(base2D, 1.6)
}