text: /*
  *
  *   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  *
  *      ,----  ,----  ,----
  *      |      |      |
  *      |----  | --,  |----
  *      |      |   |  |
  *      '----  '---'  '----
  *
  *     Framework Library for Hexagon
  *
  *    Copyright (c) Sppmacd 2020 - 2021
  *
  *    Permission is hereby granted, free of charge, to any person obtaining a copy
  *    of this software and associated documentation files (the "Software"), to deal
  *    in the Software without restriction, including without limitation the rights
  *    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  *    copies of the Software, and to permit persons to whom the Software is
  *    furnished to do so, subject to the following conditions:
  *
  *    The above copyright notice and this permission notice shall be included in all
  *    copies or substantial portions of the Software.
  *
  *    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  *    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  *    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  *    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  *    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  *    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  *    SOFTWARE.
  *
  *   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  *
  */
  
  #pragma once
  
  #include "Part.h"
  
  #include <ege/util/Color.h>
  #include <ege/util/Rect.h>
  
  namespace EGE
  {
  
  class SceneObject2D;
  
  class PolygonPart : public Part
  {
  public:
      PolygonPart(SceneObject& object)
      : Part((SceneObject&)object) {}
  
      virtual void render(Renderer& renderer) const override;
      virtual void updateGeometry(Renderer& renderer) override;
  
      virtual bool deserialize(SharedPtr<ObjectMap>) override;
  
      ColorRGBA fillColor;
      // TODO: outline
  
  private:
      // TODO: expose that
      Vector<Vec2d> vertexes;
      Vector<Vertex> m_vertexes;
  };
  
  }
  