#pragma once

#include "vector.hpp"


namespace frog::geo {


struct polar2
{
    float r = 0;
    float theta = 0;
};


struct cylindrical3
{
    float r = 0;
    float theta = 0;
    float y = 0;
};


/** 2D cartesian <-> 2D polar
 */

polar2 to_polar(vec2 pt);
vec2 to_cartesian(polar2 pt);


/** 3D cartesian <-> 3D cylindrical
 */

cylindrical3 to_cylindrical(vec3 pt);
vec3 to_cartesian(cylindrical3 pt);


} // namespace frog::geo
