Code View

plugin / plugin-2.2.0.0 / example / plugin / Ellipse.cpp
// SPDX-License-Identifier: MIT
#include "Ellipse.hh"

#include <plugin/PluginRegister.hh>

#include "Shape.hh"

namespace plugin
{
  namespace example
  {
    Ellipse::Ellipse( )
      : semiAxisA( 0 ),
        semiAxisB( 0 )
    {
    }

    Ellipse::Ellipse( Config const& cfg )
      : semiAxisA( cfg.a ),
        semiAxisB( cfg.b )
    {
    }

    Ellipse::Ellipse( Ellipse const& object )
      : Shape( object ),
        semiAxisA( object.semiAxisA ),
        semiAxisB( object.semiAxisB )
    {
    }

    void Ellipse::setSize( unsigned int value )
    {
      semiAxisA = value;
      semiAxisB = value;
    }

    unsigned int Ellipse::getSize( ) const
    {
      return semiAxisA;  // returns semi-axis a
    }

    void Ellipse::printOn( std::ostream& stream ) const
    {
      stream << "Ellipse a:" << semiAxisA << " b:" << semiAxisB << '\n';
    }

    REGISTER_WITH_CONFIG( Ellipse, Shape, Ellipse::Config );
  }  // namespace example
}  // namespace plugin