
/* EndPointArc.hpp - SVG's partial elliptical arc representations */

#ifndef __EndPointArc_hpp__
#define __EndPointArc_hpp__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
# pragma once
#endif

#include <Cg/vector/xyzw.hpp>
#include <Cg/double.hpp>
#include <Cg/vector.hpp>

using namespace Cg;

// EndPointArc is the partial elliptical arc parameterization used by SVG's arc commands.
// This arc parameterization is intuitive to artists and path specification because
// the end-points of the arc are explicitly stated.
// http://www.w3.org/TR/SVG/implnote.html#ArcSyntax
struct EndPointArc {
    float2 p[2],
           radii;
    float x_axis_rotation;
    bool large_arc_flag,
         sweep_flag;
};

#endif // __EndPointArc_hpp__
