38 lines
975 B
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
|
|
}
|