ActiveLib
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | List of all members
active::serialise::xml::XMLPolygon< Vert, VertWrap, Hole, HoleWrap > Class Template Reference

#include <XMLPolygon.h>

Inheritance diagram for active::serialise::xml::XMLPolygon< Vert, VertWrap, Hole, HoleWrap >:
Inheritance graph
[legend]
Collaboration diagram for active::serialise::xml::XMLPolygon< Vert, VertWrap, Hole, HoleWrap >:
Collaboration graph
[legend]

Public Types

enum  FieldIndex { hole }
 The package fields.
 
using base = XMLSolidPolygon<Vert, VertWrap>
 
- Public Types inherited from active::serialise::xml::XMLSolidPolygon< Vert, VertWrap >
enum  FieldIndex { vertex , topID }
 Serialisation fields.
 
using base = std::reference_wrapper<geometry::Polygon>
 
- Public Types inherited from active::serialise::Package
using Unique = std::unique_ptr<Package>
 Unique pointer.
 
using Shared = std::shared_ptr<Package>
 Shared pointer.
 
- Public Types inherited from active::serialise::Cargo
using Unique = std::unique_ptr<Cargo>
 Unique pointer.
 
using Shared = std::shared_ptr<Cargo>
 Shared pointer.
 
using size_type = std::string::size_type
 Class size type.
 
using sizeOption = std::optional<size_type>
 Optional size type (used to indicate an unspecified or non-existant position)
 

Public Member Functions

 XMLPolygon (const geometry::Polygon &polygon)
 
 XMLPolygon (const geometry::Polygon &polygon, const utility::String &customTag)
 
virtual bool fillInventory (Inventory &inventory) const override
 
virtual Cargo::Unique getCargo (const Inventory::Item &item) const override
 
virtual bool insert (Cargo::Unique &&cargo, const Inventory::Item &item) override
 
- Public Member Functions inherited from active::serialise::xml::XMLSolidPolygon< Vert, VertWrap >
 XMLSolidPolygon (const geometry::Polygon &polygon)
 
 XMLSolidPolygon (const geometry::Polygon &polygon, const utility::String &customTag)
 
virtual void setDefault () override
 
virtual bool validate () override
 
- Public Member Functions inherited from active::serialise::Package
bool isRoot () const
 
virtual bool isAttributeFirst () const
 
virtual bool read (const utility::String &source)
 
void setRoot (bool state)
 
virtual bool finaliseAttributes ()
 
- Public Member Functions inherited from active::serialise::Cargo
 Cargo ()
 
 Cargo (const Cargo &source)
 
virtual ~Cargo ()=default
 
virtual void clear ()
 

Static Public Attributes

static utility::String tag = "polygon"
 The default element tag.
 
static std::array fieldID
 Serialisation field IDs.
 
- Static Public Attributes inherited from active::serialise::xml::XMLSolidPolygon< Vert, VertWrap >
static utility::String tag = "polygon"
 The default element tag.
 
static std::array fieldID
 Serialisation field IDs.
 

Detailed Description

template<class Vert = geometry::PolyPoint, class VertWrap = XMLPolyPoint, class Hole = geometry::Polygon, class HoleWrap = XMLSolidPolygon<Vert, VertWrap>>
requires IsPolyPoint<Vert> && IsPointWrap<VertWrap> && IsPolygon<Hole> && IsHoleWrap<HoleWrap>
class active::serialise::xml::XMLPolygon< Vert, VertWrap, Hole, HoleWrap >

A serialisation wrapper for a Polygon (includng holes)

While explicitly supporting XML, this class should work equally well for JSON and probably CSV serialisation This is a template to support the deserialisation of vertex objects derived from PolyPoint

Constructor & Destructor Documentation

◆ XMLPolygon() [1/2]

template<class Vert = geometry::PolyPoint, class VertWrap = XMLPolyPoint, class Hole = geometry::Polygon, class HoleWrap = XMLSolidPolygon<Vert, VertWrap>>
active::serialise::xml::XMLPolygon< Vert, VertWrap, Hole, HoleWrap >::XMLPolygon ( const geometry::Polygon & polygon)
inline

Constructor

Parameters
polygonThe polygon to wrap for (de)serialisation

◆ XMLPolygon() [2/2]

template<class Vert = geometry::PolyPoint, class VertWrap = XMLPolyPoint, class Hole = geometry::Polygon, class HoleWrap = XMLSolidPolygon<Vert, VertWrap>>
active::serialise::xml::XMLPolygon< Vert, VertWrap, Hole, HoleWrap >::XMLPolygon ( const geometry::Polygon & polygon,
const utility::String & customTag )
inline

Constructor

Parameters
polygonThe polygon to wrap for (de)serialisation
customTagA custom tag (overrides the default tag)

Member Function Documentation

◆ fillInventory()

template<class Vert = geometry::PolyPoint, class VertWrap = XMLPolyPoint, class Hole = geometry::Polygon, class HoleWrap = XMLSolidPolygon<Vert, VertWrap>>
virtual bool active::serialise::xml::XMLPolygon< Vert, VertWrap, Hole, HoleWrap >::fillInventory ( Inventory & inventory) const
inlineoverridevirtual

Fill an inventory with the package items

Parameters
inventoryThe inventory to receive the package items
Returns
True if the package has added items to the inventory

Reimplemented from active::serialise::xml::XMLSolidPolygon< Vert, VertWrap >.

Here is the call graph for this function:

◆ getCargo()

template<class Vert = geometry::PolyPoint, class VertWrap = XMLPolyPoint, class Hole = geometry::Polygon, class HoleWrap = XMLSolidPolygon<Vert, VertWrap>>
virtual Cargo::Unique active::serialise::xml::XMLPolygon< Vert, VertWrap, Hole, HoleWrap >::getCargo ( const Inventory::Item & item) const
inlineoverridevirtual

Get the specified cargo

Parameters
itemThe inventory item to retrieve
Returns
The requested cargo (nullptr on failure)

Reimplemented from active::serialise::xml::XMLSolidPolygon< Vert, VertWrap >.

Here is the call graph for this function:

◆ insert()

template<class Vert = geometry::PolyPoint, class VertWrap = XMLPolyPoint, class Hole = geometry::Polygon, class HoleWrap = XMLSolidPolygon<Vert, VertWrap>>
virtual bool active::serialise::xml::XMLPolygon< Vert, VertWrap, Hole, HoleWrap >::insert ( Cargo::Unique && cargo,
const Inventory::Item & item )
inlineoverridevirtual

Insert specified cargo into the package - used for cargo with many instances sharing the same ID (e.g. from an array/map)

Parameters
cargoThe cargo to insert
itemThe inventory item linked with the cargo
Returns
True if the cargo was accepted (false will trigger an import failure - simply discard if this is not an error)

Reimplemented from active::serialise::xml::XMLSolidPolygon< Vert, VertWrap >.

Here is the call graph for this function:

Member Data Documentation

◆ fieldID

template<class Vert = geometry::PolyPoint, class VertWrap = XMLPolyPoint, class Hole = geometry::Polygon, class HoleWrap = XMLSolidPolygon<Vert, VertWrap>>
std::array active::serialise::xml::XMLPolygon< Vert, VertWrap, Hole, HoleWrap >::fieldID
inlinestatic
Initial value:
= {
Identity{"hole"},
}

Serialisation field IDs.


The documentation for this class was generated from the following file: