arcade/choc-caps/circle.go

44 lines
654 B
Go

package main
import (
"log"
"github.com/deadsy/sdfx/sdf"
)
type Circle struct {
size float64
rimSize float64
}
// member functions
func (c Circle) Top2D(size float64) sdf.SDF2 {
circle, err := sdf.Circle2D(size / 2)
if err != nil {
log.Fatalln(err)
}
return circle
}
func (c Circle) Rim2D(size float64) sdf.SDF2 {
rimNegative, err := sdf.Circle2D((size - c.rimSize) / 2)
if err != nil {
log.Fatalln(err)
}
return sdf.Difference2D(c.Top2D(size), rimNegative)
}
func (c Circle) Size() float64 {
return c.size
}
// new
func circleNew(size, rimSize float64) Circle {
var c Circle
c.size = size
c.rimSize = rimSize
return c
}