Ph0tonic/SDP_Projet

View on GitHub
app/src/main/java/ch/epfl/sdp/searcharea/CircleBuilder.kt

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
package ch.epfl.sdp.searcharea

import com.mapbox.mapboxsdk.geometry.LatLng
import net.mastrgamr.mbmapboxutils.SphericalUtil
import kotlin.math.*

class CircleBuilder : SearchAreaBuilder() {
    override val sizeLowerBound: Int? = 2
    override val sizeUpperBound: Int? = 2
    override val shapeName: String = "Circle"
    override fun buildGivenIsComplete() = CircleArea(center, outer)

    val center
        get() = vertices[0]
    val outer
        get() = vertices[1]
    val radius
        get() = center.distanceTo(outer)

    override fun getShapeVerticesGivenComplete(): List<LatLng> {
        val sides = 45
        val numberOfPoints = sides
        return List<LatLng>(sides) {
            val percent = it / numberOfPoints.toDouble()
            SphericalUtil.computeOffset(center, radius, percent * 360)
        }
    }
}