# OGRFeature Style C++ API

Simple feature style classes.

Typedefs

typedef enum ogr_style_type `OGRSType`

  OGR Style type.

Enums

enum `ogr_style_type`

  OGR Style type.

  Values:

  `OGRSTypeUnused` = -1
  `OGRSTypeString`
  `OGRSTypeDouble`
  `OGRSTypeInteger`
  `OGRSTypeBoolean`

class `OGRStyleTable`
  #include <ogr_featurestyle.h>

  This class represents a style table.

  Public Functions

  `OGRStyleTable`()
  `~OGRStyleTable`()
  GBool `AddStyle`(const char *pszName, const char *pszStyleString)

    Add a new style in the table.

    No comparison will be done on the Style string, only on the name.

    Return

      TRUE on success, FALSE on error

    Parameters

      - `pszName`: the name the style to add.

      - `pszStyleString`: the style string to add.

  GBool `RemoveStyle`(const char *pszName)

    Remove a style in the table by its name.

    Return

      TRUE on success, FALSE on error

    Parameters

      - `pszName`: the name of the style to remove.

  GBool `ModifyStyle`(const char *pszName, const char *pszStyleString)

    Modify a style in the table by its name If the style does not exist, it will be added.

    Return

      TRUE on success, FALSE on error

    Parameters

      - `pszName`: the name of the style to modify.

      - `pszStyleString`: the style string.

  GBool `SaveStyleTable`(const char *pszFilename)

    Save a style table to a file.

    Return

      TRUE on success, FALSE on error

    Parameters

      - `pszFilename`: the name of the file to save to.

  GBool `LoadStyleTable`(const char *pszFilename)

    Load a style table from a file.

    Return

      TRUE on success, FALSE on error

    Parameters

      - `pszFilename`: the name of the file to load from.

  const char *`Find`(const char *pszStyleString)

    Get a style string by name.

    Return

      the style string matching the name, NULL if not found or error.

    Parameters

      - `pszName`: the name of the style string to find.

  int `IsExist`(const char *pszName)

    Get the index of a style in the table by its name.

    Return

      The index of the style if found, -1 if not found or error.

    Parameters

      - `pszName`: the name to look for.

  const char *`GetStyleName`(const char *pszName)

    Get style name by style string.

    Return

      the Name of the matching style string or NULL on error.

    Parameters

      - `pszStyleString`: the style string to look up.

  void `Print`(FILE *fpOut)

    Print a style table to a FILE pointer.

    Parameters

      - `fpOut`: the FILE pointer to print to.

  void `Clear`()

    Clear a style table.

  OGRStyleTable *`Clone`()

    Duplicate style table.

    The newly created style table is owned by the caller, and will have its own reference to the OGRStyleTable.

    Return

      new style table, exactly matching this style table.

  void `ResetStyleStringReading`()

    Reset the next style pointer to 0.

  const char *`GetNextStyle`()

    Get the next style string from the table.

    Return

      the next style string or NULL on error.

  const char *`GetLastStyleName`()

    Get the style name of the last style string fetched with OGR_STBL_GetNextStyle.

    Return

      the Name of the last style string or NULL on error.

  Private Members

  char **`m_papszStyleTable` = nullptr
  CPLString `osLastRequestedStyleName` = {}
  int `iNextStyle` = 0

class `OGRStyleMgr`
  #include <ogr_featurestyle.h>

  This class represents a style manager.

  Public Functions

  `OGRStyleMgr`(OGRStyleTable *poDataSetStyleTable = nullptr)

    Constructor.

    This method is the same as the C function OGR_SM_Create()

    Parameters

      - `poDataSetStyleTable`: (currently unused, reserved for future use), pointer to OGRStyleTable. Pass NULL for now.

  `~OGRStyleMgr`()

    Destructor.

    This method is the same as the C function OGR_SM_Destroy()

  GBool `SetFeatureStyleString`(OGRFeature *poFeature, const char *pszStyleString = nullptr, GBool bNoMatching = FALSE)

    Set a style in a feature.

    Return

      TRUE on success, FALSE on error.

    Parameters

      - `poFeature`: the feature object to store the style in

      - `pszStyleString`: the style to store

      - `bNoMatching`: TRUE to lookup the style in the style table and add the name to the feature

  const char *`InitFromFeature`(OGRFeature *poFeature)

    Initialize style manager from the style string of a feature.

    This method is the same as the C function OGR_SM_InitFromFeature().

    Return

      a reference to the style string read from the feature, or NULL in case of error..

    Parameters

      - `poFeature`: feature object from which to read the style.

  GBool `InitStyleString`(const char *pszStyleString = nullptr)

    Initialize style manager from the style string.

    This method is the same as the C function OGR_SM_InitStyleString().

    Return

      TRUE on success, FALSE on errors.

    Parameters

      - `pszStyleString`: the style string to use (can be NULL).

  const char *`GetStyleName`(const char *pszStyleString = nullptr)

    Get the name of a style from the style table.

    Return

      The name if found, or NULL on error.

    Parameters

      - `pszStyleString`: the style to search for, or NULL to use the style currently stored in the manager.

  const char *`GetStyleByName`(const char *pszStyleName)

    find a style in the current style table.

    Return

      the style string matching the name or NULL if not found or error.

    Parameters

      - `pszStyleName`: the name of the style to add.

  GBool `AddStyle`(const char *pszStyleName, const char *pszStyleString = nullptr)

    Add a style to the current style table.

    This method is the same as the C function OGR_SM_AddStyle().

    Return

      TRUE on success, FALSE on errors.

    Parameters

      - `pszStyleName`: the name of the style to add.

      - `pszStyleString`: the style string to use, or NULL to use the style stored in the manager.

  const char *`GetStyleString`(OGRFeature *poFeature = nullptr)

    Get the style string from the style manager.

    NOTE: this method will call

    OGRStyleMgr::InitFromFeature() if poFeature is not NULL and replace the style string stored in the style manager
    Return

      the style string stored in the feature or the style string stored in the style manager if poFeature is NULL

    Parameters

      - `poFeature`: feature object from which to read the style or NULL to get the style string stored in the manager.

  GBool `AddPart`(OGRStyleTool *poStyleTool)

    Add a part (style tool) to the current style.

    This method is the same as the C function OGR_SM_AddPart().

    Return

      TRUE on success, FALSE on errors.

    Parameters

      - `poStyleTool`: the style tool defining the part to add.

  GBool `AddPart`(const char *pszPart)

    Add a part (style string) to the current style.

    Return

      TRUE on success, FALSE on errors.

    Parameters

      - `pszPart`: the style string defining the part to add.

  int `GetPartCount`(const char *pszStyleString = nullptr)

    Get the number of parts in a style.

    This method is the same as the C function OGR_SM_GetPartCount().

    Return

      the number of parts (style tools) in the style.

    Parameters

      - `pszStyleString`: (optional) the style string on which to operate. If NULL then the current style string stored in the style manager is used.

  OGRStyleTool *`GetPart`(int hPartId, const char *pszStyleString = nullptr)

    Fetch a part (style tool) from the current style.

    This method is the same as the C function OGR_SM_GetPart().

    This method instantiates a new object that should be freed with OGR_ST_Destroy().

    Return

      OGRStyleTool of the requested part (style tools) or NULL on error.

    Parameters

      - `nPartId`: the part number (0-based index).

      - `pszStyleString`: (optional) the style string on which to operate. If NULL then the current style string stored in the style manager is used.

  Private Members

  OGRStyleTable *`m_poDataSetStyleTable` = nullptr
  char *`m_pszStyleString` = nullptr

class `OGRStyleTool`
  #include <ogr_featurestyle.h>

  This class represents a style tool.

  Public Functions

  `OGRStyleTool`()
  `OGRStyleTool`(OGRSTClassId eClassId)

    Constructor.

  `~OGRStyleTool`()
  OGRSTClassId `GetType`()

    Determine type of Style Tool.

    Return

      the style tool type, one of OGRSTCPen (1), OGRSTCBrush (2), OGRSTCSymbol (3) or OGRSTCLabel (4). Returns OGRSTCNone (0) if the OGRStyleToolH is invalid.

  void `SetUnit`(OGRSTUnitId eUnit, double dfScale = 1.0)

    Set Style Tool units.

    Parameters

      - `eUnit`: the new unit.

      - `dfGroundPaperScale`: ground to paper scale factor.

  `GetUnit`()

    Get Style Tool units.

    Return

      the style tool units.

  `GetStyleString`() = 0

    Get the style string for this Style Tool.

    Maps to the OGRStyleTool subclasses’ GetStyleString() methods.

    Return

      the style string for this style tool or “” if the hST is invalid.

  void `SetStyleString`(const char *pszStyleString)

    Undocumented.

    Parameters

      - `pszStyleString`: undocumented.

  const char *`GetStyleString`(const OGRStyleParamId *pasStyleParam, OGRStyleValue *pasStyleValue, int nSize)

    Undocumented.

    Return

      undocumented.

    Parameters

      - `pasStyleParam`: undocumented.

      - `pasStyleValue`: undocumented.

      - `nSize`: undocumented.

  const char *`GetParamStr`(const OGRStyleParamId &sStyleParam, OGRStyleValue &sStyleValue, GBool &bValueIsNull)

    Undocumented.

    Return

      Undocumented.

    Parameters

      - `sStyleParam`: undocumented.

      - `sStyleValue`: undocumented.

      - `bValueIsNull`: undocumented.

  int `GetParamNum`(const OGRStyleParamId &sStyleParam, OGRStyleValue &sStyleValue, GBool &bValueIsNull)

    Undocumented.

    Return

      Undocumented.

    Parameters

      - `sStyleParam`: undocumented.

      - `sStyleValue`: undocumented.

      - `bValueIsNull`: undocumented.

  double `GetParamDbl`(const OGRStyleParamId &sStyleParam, OGRStyleValue &sStyleValue, GBool &bValueIsNull)

    Undocumented.

    Return

      Undocumented.

    Parameters

      - `sStyleParam`: undocumented.

      - `sStyleValue`: undocumented.

      - `bValueIsNull`: undocumented.

  void `SetParamStr`(const OGRStyleParamId &sStyleParam, OGRStyleValue &sStyleValue, const char *pszParamString)

    Undocumented.

    Parameters

      - `sStyleParam`: undocumented.

      - `sStyleValue`: undocumented.

      - `pszParamString`: undocumented.

  void `SetParamNum`(const OGRStyleParamId &sStyleParam, OGRStyleValue &sStyleValue, int nParam)

    Undocumented.

    Parameters

      - `sStyleParam`: undocumented.

      - `sStyleValue`: undocumented.

      - `nParam`: undocumented.

  void `SetParamDbl`(const OGRStyleParamId &sStyleParam, OGRStyleValue &sStyleValue, double dfParam)

    Undocumented.

    Parameters

      - `sStyleParam`: undocumented.

      - `sStyleValue`: undocumented.

      - `dfParam`: undocumented.

  Public Static Functions

  GBool `GetRGBFromString`(const char *pszColor, int &nRed, int &nGreen, int &nBlue, int &nTransparence)

    Return the r,g,b,a components of a color encoded in #RRGGBB[AA] format.

    Maps to OGRStyleTool::GetRGBFromString().

    Return

      TRUE if the color could be successfully parsed, or FALSE in case of errors.

    Parameters

      - `pszColor`: the color to parse

      - `nRed`: reference to an int in which the red value will be returned.

      - `nGreen`: reference to an int in which the green value will be returned.

      - `nBlue`: reference to an int in which the blue value will be returned.

      - `nTransparance`: reference to an int in which the (optional) alpha value will be returned.

  int `GetSpecificId`(const char *pszId, const char *pszWanted)

    Undocumented.

    Return

      Undocumented

    Parameters

      - `pszId`: Undocumented

      - `pszWanted`: Undocumented

  Private Functions

  virtual GBool `Parse`() = 0

  Private Members

  GBool `m_bModified` = false
  GBool `m_bParsed` = false
  double `m_dfScale` = 1.0
  OGRSTUnitId `m_eUnit` = OGRSTUMM
  OGRSTClassId `m_eClassId` = OGRSTCNone
  char *`m_pszStyleString` = nullptr