/** \file
 *
 *  Specifies the interface details for the ShortestDistanceToPolygonSidesCalculator component in the
 *  DerivationModule.
 *
 *  ShortestDistanceToPolygonSidesCalculator.h should only be included by ShortestDistanceToPolygonSidesCalculator.cpp
 *  Other classes should include ShortestDistanceToPolygonSidesCalculatorIF.h
 *
 *  Copyright (c) 2022 MBARI
 *  MBARI Proprietary Information.  All Rights Reserved
 */

#ifndef SHORTESTDISTANCETOPOLYGONSIDESCALCULATORIF_H_
#define SHORTESTDISTANCETOPOLYGONSIDESCALCULATORIF_H_

#include "data/ElementURI.h"

/**
 *  Specifies the interface details for the ShortestDistanceToPolygonSidesCalculator component in the
 *  DerivationModule.
 *
 *  ShortestDistanceToPolygonSidesCalculator.h should only be included by ShortestDistanceToPolygonSidesCalculator.cpp
 *  Other classes should include ShortestDistanceToPolygonSidesCalculator.h
 *
 *  \ingroup modules_derivation
 */
namespace ShortestDistanceToPolygonSidesCalculatorIF
{
/// Static const for component name
/// (Can be used by other components)
static const Str NAME( "ShortestDistanceToPolygonSidesCalculator" );

// Include common ConfigURIs -- must be in namespace and follow definition of NAME
#include "component/HasLoadAtStartupIF.h"

static const ConfigURI VERBOSITY( NAME, "verbosity", Units::COUNT );
static const ConfigURI LAT_VERTEX_1( NAME, "latVertex1", Units::DEGREE, DOUBLE6 );
static const ConfigURI LON_VERTEX_1( NAME, "lonVertex1", Units::DEGREE, DOUBLE6 );
static const ConfigURI LAT_VERTEX_2( NAME, "latVertex2", Units::DEGREE, DOUBLE6 );
static const ConfigURI LON_VERTEX_2( NAME, "lonVertex2", Units::DEGREE, DOUBLE6 );
static const ConfigURI LAT_VERTEX_3( NAME, "latVertex3", Units::DEGREE, DOUBLE6 );
static const ConfigURI LON_VERTEX_3( NAME, "lonVertex3", Units::DEGREE, DOUBLE6 );
static const ConfigURI LAT_VERTEX_4( NAME, "latVertex4", Units::DEGREE, DOUBLE6 );
static const ConfigURI LON_VERTEX_4( NAME, "lonVertex4", Units::DEGREE, DOUBLE6 );
static const ConfigURI LAT_VERTEX_5( NAME, "latVertex5", Units::DEGREE, DOUBLE6 );
static const ConfigURI LON_VERTEX_5( NAME, "lonVertex5", Units::DEGREE, DOUBLE6 );
static const ConfigURI LAT_VERTEX_6( NAME, "latVertex6", Units::DEGREE, DOUBLE6 );
static const ConfigURI LON_VERTEX_6( NAME, "lonVertex6", Units::DEGREE, DOUBLE6 );
static const ConfigURI LAT_VERTEX_7( NAME, "latVertex7", Units::DEGREE, DOUBLE6 );
static const ConfigURI LON_VERTEX_7( NAME, "lonVertex7", Units::DEGREE, DOUBLE6 );
static const ConfigURI LAT_VERTEX_8( NAME, "latVertex8", Units::DEGREE, DOUBLE6 );
static const ConfigURI LON_VERTEX_8( NAME, "lonVertex8", Units::DEGREE, DOUBLE6 );
static const ConfigURI LAT_VERTEX_9( NAME, "latVertex9", Units::DEGREE, DOUBLE6 );
static const ConfigURI LON_VERTEX_9( NAME, "lonVertex9", Units::DEGREE, DOUBLE6 );
static const ConfigURI LAT_VERTEX_10( NAME, "latVertex10", Units::DEGREE, DOUBLE6 );
static const ConfigURI LON_VERTEX_10( NAME, "lonVertex10", Units::DEGREE, DOUBLE6 );

static const DataURI SHORTEST_DIST_TO_POLYGON_SIDES( NAME, "shortest_distance_to_polygon_sides", Units::METER );
static const DataURI SIDE_SHORTEST_DIST( NAME, "side_shortest_distance", Units::COUNT );
static const DataURI INSIDE_POLYGON( NAME, "inside_polygon", Units::BOOL );
}

#endif /*SHORTESTDISTANCETOPOLYGONSIDESCALCULATORIF_H_*/
