arcade/dustcover.go

38 lines
975 B
Go

package main
import (
"github.com/deadsy/sdfx/obj"
"github.com/deadsy/sdfx/sdf"
)
const (
DUST_COVER_OUTER_CIRCUM = 37.5
DUST_COVER_INNER_CIRCUM = 14.0
DUST_COVER_HEIGHT = 1.48
)
func dustCover() (sdf.SDF3, error) {
cutoutHeight := 0.16
dustCover, err := obj.Pipe3D(DUST_COVER_OUTER_CIRCUM/2, DUST_COVER_INNER_CIRCUM/2, DUST_COVER_HEIGHT+(cutoutHeight*2))
if err != nil {
Error(err)
}
cutout1, err := sdf.Box3D(sdf.V3{X: DUST_COVER_OUTER_CIRCUM, Y: DUST_COVER_OUTER_CIRCUM, Z: cutoutHeight}, 0)
if err != nil {
Error(err)
}
cutout2 := cutout1
cutout1Shift := (DUST_COVER_HEIGHT + cutoutHeight) / 2
cutout1 = sdf.Transform3D(cutout1, sdf.Translate3d(sdf.V3{X: 0, Y: 0, Z: cutout1Shift}))
dustCover = sdf.Difference3D(dustCover, cutout1)
cutout2Shift := DUST_COVER_HEIGHT / 2
cutout2 = sdf.Transform3D(cutout2, sdf.Translate3d(sdf.V3{X: 0, Y: 0, Z: -cutout2Shift}))
dustCover = sdf.Difference3D(dustCover, cutout2)
return dustCover, nil
}