/******************************************************************************
** Copyright (c) 2025 MAK Technologies, Inc.
** All rights reserved.
******************************************************************************/

//! \file DtCDBGeoPoliticalDbfClassRow.h
//! \brief Class to manage Cdb class vector row (dbf) information for GeoPolitical
//! \ingroup osgearth_cdb_utils

#pragma once

#include <osgearth_cdb_utils/DtCDBExport.h>

#include <osgearth_cdb_utils/DtCDBClassRow.h>

namespace makVrv {
   namespace oe {
      namespace CDB
      {

         //! \brief Class used to keep GS GeoPolitical "class" dbf rows information
         //! \ingroup osgearth_cdb_utils
         class DT_DLL_OSGEARTH_CDB_UTILS DtGeoPoliticalDbfClassRow : public DtCDBClassRow
         {
         public:
            //! \brief CTOR
            DtGeoPoliticalDbfClassRow();

            //! \brief Density Measure (% light cover) – Lighting cover measured by
            //! percent within area of feature at night
            int myDML;
            //! \brief Light Material IndeX – Index into the Composite Material Table that
            //! is used to determine the Light Material composition of the associated
            //! city illumination
            int myLMIX;
            //! \brief Location Accuracy - A precision value used to quantify the relative
            //! precision of the Location point representing the specific GeoPolitical
            //! Location.
            int myLACC;

         };

         //! \brief Class used to keep GeoPolitical "instance" dbf rows information
         //! \ingroup osgearth_cdb_utils
         class DT_DLL_OSGEARTH_CDB_UTILS DtGeoPoliticalDbfInstanceRow : public DtCDBinstanceRow
         {
         public:
            //! \brief CTOR
            DtGeoPoliticalDbfInstanceRow();

            //! \brief Layer Priority Number – A vector feature is “visible” if it has a
            //! higher numeric layer number than other coplanar vector feature.
            int myLPN;
            //! \brief Relative TActical Importance
            int myRTAI;
            //! \brief Boundary Type - A value that uniquely represents the Boundary
            //! Attribution Type.
            int myBOTY;
            //! \brief Location Type - A value that uniquely represents the Location
            //! Attribution Type.
            int myLOTY;
            //! \brief Populated Place Type - A value that uniquely represents the
            //! Populated Place Attribution Type
            int myPOPT;
            //! \brief Instance Index 
            unsigned int myIndex;
         };
      }
   }
}