Geometrize 1.0
C++ library for geometrizing images into geometric primitives
Public Member Functions | Public Attributes | List of all members
geometrize::Circle Class Reference

The Circle class represents a circle. More...

#include <circle.h>

Inheritance diagram for geometrize::Circle:
Inheritance graph
[legend]
Collaboration diagram for geometrize::Circle:
Collaboration graph
[legend]

Public Member Functions

 Circle ()=default
 
 Circle (float x, float y, float r)
 
virtual std::shared_ptr< geometrize::Shapeclone () const override
 clone Clones the shape, a virtual copy constructor. More...
 
virtual geometrize::ShapeTypes getType () const override
 getType Gets the ShapeType of the shape. More...
 
- Public Member Functions inherited from geometrize::Shape
 Shape ()=default
 
virtual ~Shape ()=default
 
Shapeoperator= (const geometrize::Shape &other)=default
 
 Shape (const geometrize::Shape &other)=default
 
virtual std::shared_ptr< geometrize::Shapeclone () const
 clone Clones the shape, a virtual copy constructor. More...
 
virtual geometrize::ShapeTypes getType () const
 getType Gets the ShapeType of the shape. More...
 

Public Attributes

float m_x
 x-coordinate. More...
 
float m_y
 y-coordinate. More...
 
float m_r
 Radius. More...
 
- Public Attributes inherited from geometrize::Shape
std::function< void(geometrize::Shape &)> setup
 
std::function< void(geometrize::Shape &)> mutate
 
std::function< std::vector< geometrize::Scanline >(const geometrize::Shape &)> rasterize
 

Detailed Description

The Circle class represents a circle.

Author
Sam Twidale (https://samcodes.co.uk/)

Constructor & Destructor Documentation

◆ Circle() [1/2]

geometrize::Circle::Circle ( )
default

◆ Circle() [2/2]

geometrize::Circle::Circle ( float  x,
float  y,
float  r 
)
11 : Shape()
12{
13 m_x = x;
14 m_y = y;
15 m_r = r;
16}
float m_r
Radius.
Definition: circle.h:26
float m_y
y-coordinate.
Definition: circle.h:25
float m_x
x-coordinate.
Definition: circle.h:24

Member Function Documentation

◆ clone()

std::shared_ptr< geometrize::Shape > geometrize::Circle::clone ( ) const
overridevirtual

clone Clones the shape, a virtual copy constructor.

Returns
A clone of the shape.

Reimplemented from geometrize::Shape.

19{
20 std::shared_ptr<geometrize::Circle> circle{std::make_shared<geometrize::Circle>()};
21 circle->m_x = m_x;
22 circle->m_y = m_y;
23 circle->m_r = m_r;
24 circle->setup = setup;
25 circle->mutate = mutate;
26 circle->rasterize = rasterize;
27 return circle;
28}
std::function< std::vector< geometrize::Scanline >(const geometrize::Shape &)> rasterize
Definition: shape.h:27
std::function< void(geometrize::Shape &)> setup
Definition: shape.h:25
std::function< void(geometrize::Shape &)> mutate
Definition: shape.h:26

◆ getType()

geometrize::ShapeTypes geometrize::Circle::getType ( ) const
overridevirtual

getType Gets the ShapeType of the shape.

Returns
The ShapeType of the shape.

Reimplemented from geometrize::Shape.

31{
33}
@ CIRCLE
Definition: shapetypes.h:23

Member Data Documentation

◆ m_r

float geometrize::Circle::m_r

Radius.

◆ m_x

float geometrize::Circle::m_x

x-coordinate.

◆ m_y

float geometrize::Circle::m_y

y-coordinate.


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