GEOS 3.14.0dev
Public Member Functions | Protected Attributes | List of all members
geos::geom::util::SineStarFactory Class Reference

#include <SineStarFactory.h>

Inheritance diagram for geos::geom::util::SineStarFactory:
geos::util::GeometricShapeFactory

Public Member Functions

 SineStarFactory (const geom::GeometryFactory *fact)
 
void setNumArms (int nArms)
 
void setArmLengthRatio (double armLenRatio)
 
std::unique_ptr< PolygoncreateSineStar () const
 
- Public Member Functions inherited from geos::util::GeometricShapeFactory
 GeometricShapeFactory (const geom::GeometryFactory *factory)
 Create a shape factory which will create shapes using the given GeometryFactory.
 
std::unique_ptr< geom::LineStringcreateArc (double startAng, double angExtent)
 Creates an elliptical arc, as a LineString.
 
std::unique_ptr< geom::PolygoncreateArcPolygon (double startAng, double angExt)
 Creates an elliptical arc polygon.
 
std::unique_ptr< geom::PolygoncreateCircle ()
 Creates a circular Polygon.
 
std::unique_ptr< geom::PolygoncreateRectangle ()
 Creates a rectangular Polygon.
 
void setBase (const geom::CoordinateXY &base)
 Sets the location of the shape by specifying the base coordinate (which in most cases is the * lower left point of the envelope containing the shape).
 
void setCentre (const geom::CoordinateXY &centre)
 Sets the location of the shape by specifying the centre of the shape's bounding box.
 
void setHeight (double height)
 Sets the height of the shape.
 
void setNumPoints (uint32_t nNPts)
 Sets the total number of points in the created Geometry.
 
void setSize (double size)
 Sets the size of the extent of the shape in both x and y directions.
 
void setWidth (double width)
 Sets the width of the shape.
 

Protected Attributes

int numArms
 
double armLengthRatio
 
- Protected Attributes inherited from geos::util::GeometricShapeFactory
const geom::GeometryFactorygeomFact
 
const geom::PrecisionModelprecModel
 
Dimensions dim
 
uint32_t nPts
 

Additional Inherited Members

- Protected Member Functions inherited from geos::util::GeometricShapeFactory
geom::CoordinateXY coord (double x, double y) const
 

Detailed Description

Creates geometries which are shaped like multi-armed stars with each arm shaped like a sine wave. These kinds of geometries are useful as a more complex geometry for testing algorithms.

Author
Martin Davis

Constructor & Destructor Documentation

◆ SineStarFactory()

geos::geom::util::SineStarFactory::SineStarFactory ( const geom::GeometryFactory fact)
inline

Creates a factory which will create sine stars using the given GeometryFactory.

Parameters
factthe factory to use. You need to keep the factory alive for the whole SineStarFactory life time.

Member Function Documentation

◆ createSineStar()

std::unique_ptr< Polygon > geos::geom::util::SineStarFactory::createSineStar ( ) const

Generates the geometry for the sine star

Returns
the geometry representing the sine star

◆ setArmLengthRatio()

void geos::geom::util::SineStarFactory::setArmLengthRatio ( double  armLenRatio)
inline

Sets the ration of the length of each arm to the distance from the tip of the arm to the centre of the star. Value should be between 0.0 and 1.0

Parameters
armLenRatio

◆ setNumArms()

void geos::geom::util::SineStarFactory::setNumArms ( int  nArms)
inline

Sets the number of arms in the star

Parameters
nArmsthe number of arms to generate

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