Spinning Topp Logo BlackTopp Studios
inc
Public Types | Public Member Functions | Protected Attributes | List of all members
Mezzanine::Graphics::Procedural::MultiPath Class Reference

A grouping of individual 3D curves used to express complicated structures. More...

#include <multipath.h>

+ Collaboration diagram for Mezzanine::Graphics::Procedural::MultiPath:

Public Types

typedef PathContainer::const_iterator ConstPathIterator
 Const Iterator type for Path instances being stored in this class.
 
typedef std::map< PathCoordinate, PathIntersectionIntersectionMap
 Container type for the storage of unique intersections.
 
typedef std::vector< PathIntersectionIntersectionVector
 Container type for the storage of intersections.
 
typedef std::vector< PathPathContainer
 Basic container type for Path storage in this class.
 
typedef std::vector< PathCoordinatePathIntersection
 Convenience type used to represent the intersection of two or more paths.
 
typedef PathContainer::iterator PathIterator
 Iterator type for Path instances being stored in this class.
 
typedef std::pair< Whole, WholePathSegment
 Convenience type for a pair of indexes to express a segment of a Path.
 
typedef std::vector< PathSegmentPathSegmentContainer
 Container type for segments in a Path.
 

Public Member Functions

 MultiPath ()
 Class constructor.
 
 ~MultiPath ()
 Class destructor.
 
MultiPathAddMultiPath (const MultiPath &Other)
 Append every path of another MultiShape to this MultiPath. More...
 
MultiPathAddPath (const Path &ToAdd)
 Adds a path to this MultiPath. More...
 
MultiPathCalculateIntersections ()
 Generates all the known intersections between the paths in this MultiPath. More...
 
const IntersectionVectorGetIntersections () const
 Gets the container storing all calculated intersections. More...
 
const IntersectionMapGetIntersectionsMap () const
 Gets the container storing all calculated intersections based on their path coordinate. More...
 
PathSegmentContainer GetNoIntersectionParts (const Whole PathIndex) const
 Gets segments from a specific sub-path that do not intersect other Paths of this MultiPath. More...
 
Whole GetNumPaths () const
 Gets the number of shapes in this MultiPath. More...
 
PathGetPath (const Whole Index)
 Gets a path by index. More...
 
const PathGetPath (const Whole Index) const
 Gets a path by index. More...
 
void RemoveAllPaths ()
 Removes all shapes from this MultiPath.
 
MultiPathSetPath (const Whole PathIndex, const Path &ToSet)
 Sets a path at a specific index. More...
 

Protected Attributes

IntersectionVector Intersections
 Container storing all known intersections. More...
 
PathContainer Paths
 Container storing all of the Paths that form this MultiPath. More...
 
IntersectionMap UniqueIntersections
 Container storing all intersections based on their coordinate. More...
 

Detailed Description

A grouping of individual 3D curves used to express complicated structures.

Definition at line 118 of file multipath.h.

Member Function Documentation

MultiPath & Mezzanine::Graphics::Procedural::MultiPath::AddMultiPath ( const MultiPath Other)

Append every path of another MultiShape to this MultiPath.

Parameters
OtherThe other MultiShape to append.
Returns
Returns a reference to this.

Definition at line 190 of file multipath.cpp.

MultiPath & Mezzanine::Graphics::Procedural::MultiPath::AddPath ( const Path ToAdd)

Adds a path to this MultiPath.

Parameters
ToAddThe path to be added.
Returns
Returns a reference to this.

Definition at line 184 of file multipath.cpp.

MultiPath & Mezzanine::Graphics::Procedural::MultiPath::CalculateIntersections ( )

Generates all the known intersections between the paths in this MultiPath.

Returns
Returns a reference to this.

Definition at line 122 of file multipath.cpp.

const MultiPath::IntersectionVector & Mezzanine::Graphics::Procedural::MultiPath::GetIntersections ( ) const

Gets the container storing all calculated intersections.

Returns
Returns a const reference to a vector storing all known intersections in this MultiPath.

Definition at line 224 of file multipath.cpp.

const MultiPath::IntersectionMap & Mezzanine::Graphics::Procedural::MultiPath::GetIntersectionsMap ( ) const

Gets the container storing all calculated intersections based on their path coordinate.

Returns
Returns a const reference to a map storing all unique intersections in this MultiPath.

Definition at line 229 of file multipath.cpp.

MultiPath::PathSegmentContainer Mezzanine::Graphics::Procedural::MultiPath::GetNoIntersectionParts ( const Whole  PathIndex) const

Gets segments from a specific sub-path that do not intersect other Paths of this MultiPath.

Remarks
"CalculateIntersections" should be called prior to this to get valid results.
Parameters
PathIndexThe index of the path to get non-intersectings parts of.
Returns
Returns a vector of segments stored as indexes that are non-intersecting parts of the specified Path.

Definition at line 155 of file multipath.cpp.

Whole Mezzanine::Graphics::Procedural::MultiPath::GetNumPaths ( ) const

Gets the number of shapes in this MultiPath.

Returns
Returns a Whole representing the number of paths currently stored in this MultiPath.

Definition at line 209 of file multipath.cpp.

Path & Mezzanine::Graphics::Procedural::MultiPath::GetPath ( const Whole  Index)

Gets a path by index.

Parameters
IndexThe index of the path to retrieve.
Returns
Returns a reference to the path at the specified index.

Definition at line 199 of file multipath.cpp.

const Path & Mezzanine::Graphics::Procedural::MultiPath::GetPath ( const Whole  Index) const

Gets a path by index.

Parameters
IndexThe index of the path to retrieve.
Returns
Returns a const reference to the path at the specified index.

Definition at line 204 of file multipath.cpp.

MultiPath & Mezzanine::Graphics::Procedural::MultiPath::SetPath ( const Whole  PathIndex,
const Path ToSet 
)

Sets a path at a specific index.

Remarks
This does no bounds checking and may throw an out of bounds exception.
Parameters
PathIndexThe index to place the specified path at.
ToSetThe path to be set at the specified index.
Returns
Returns a reference to this.

Definition at line 116 of file multipath.cpp.

Member Data Documentation

IntersectionVector Mezzanine::Graphics::Procedural::MultiPath::Intersections
protected

Container storing all known intersections.

Definition at line 143 of file multipath.h.

PathContainer Mezzanine::Graphics::Procedural::MultiPath::Paths
protected

Container storing all of the Paths that form this MultiPath.

Definition at line 140 of file multipath.h.

IntersectionMap Mezzanine::Graphics::Procedural::MultiPath::UniqueIntersections
protected

Container storing all intersections based on their coordinate.

Definition at line 146 of file multipath.h.


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