add a keycap model
This commit is contained in:
parent
537954c9a1
commit
57880ec227
|
@ -0,0 +1,33 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"github.com/deadsy/sdfx/sdf"
|
||||
v2 "github.com/deadsy/sdfx/vec/v2"
|
||||
)
|
||||
|
||||
// keycap makes a choc switch cap for use with the HJKL and start/select cluster
|
||||
func keycap() sdf.SDF3 {
|
||||
keycapTop2D := sdf.Box2D(sdf.V2{X: 13, Y: 13}, 1)
|
||||
|
||||
keycapBottom2D := sdf.Box2D(sdf.V2{X: 14, Y: 14}, 1)
|
||||
keycapBottom2D = sdf.Difference2D(keycapBottom2D, keycapTop2D)
|
||||
|
||||
/* keycapTop := sdf.Extrude3D(keycapTop2D, 1)
|
||||
keycapTop = sdf.Transform3D(keycapTop, sdf.Loft3D())*/
|
||||
keycapBottom := sdf.Extrude3D(keycapBottom2D, 1)
|
||||
keycapBottom = sdf.Transform3D(keycapBottom, sdf.Translate3d(sdf.V3{X: 0, Y: 0, Z: 1}))
|
||||
keycap := sdf.ScaleExtrude3D(keycapTop2D, 1, v2.Vec{X: 1.0775, Y: 1.0775})
|
||||
keycap = sdf.Union3D(keycap, keycapBottom)
|
||||
|
||||
stem2D := sdf.Box2D(sdf.V2{X: 1.2, Y: 3}, 0)
|
||||
stems := make([]sdf.SDF3, 2)
|
||||
for i := range stems {
|
||||
stems[i] = sdf.Extrude3D(stem2D, 4)
|
||||
stems[i] = sdf.Transform3D(stems[i], sdf.Translate3d(sdf.V3{X: 2.85, Y: 0, Z: 2}))
|
||||
}
|
||||
stems[1] = sdf.Transform3D(stems[1], sdf.MirrorYZ())
|
||||
|
||||
keycap = sdf.Union3D(keycap, sdf.Union3D(stems...))
|
||||
|
||||
return keycap
|
||||
}
|
Loading…
Reference in New Issue