csound::Lindenmayer Class Reference

#include <Lindenmayer.hpp>

Inheritance diagram for csound::Lindenmayer:

Inheritance graph
[legend]
Collaboration diagram for csound::Lindenmayer:

Collaboration graph
[legend]

Detailed Description

This class implements a Lindenmayer system in music space for a turtle that writes either notes into a score, or Jones-Parks grains into a memory soundfile. The Z dimension of note space is used for chirp rate. The actions of the turtle are rescaled to fit the specified bounding hypercube. The turtle commands are represented by letters (all n default to 1):

Public Member Functions

 Lindenmayer ()
virtual ~Lindenmayer ()
virtual int getIterationCount () const
virtual void setIterationCount (int count)
virtual double getAngle () const
virtual void setAngle (double angle)
virtual std::string getAxiom () const
virtual void setAxiom (std::string axiom)
virtual void addRule (std::string command, std::string replacement)
virtual std::string getReplacement (std::string command)
virtual void generate ()
virtual void clear ()
virtual void produceOrTransform (Score &score, size_t beginAt, size_t endAt, const ublas::matrix< double > &coordinates)
virtual ScoregetScore ()
virtual ublas::matrix< double > getLocalCoordinates () const
virtual ublas::matrix< double > traverse (const ublas::matrix< double > &globalCoordinates, Score &score)
virtual ublas::matrix< double > createTransform ()
virtual double & element (size_t row, size_t column)
virtual void setElement (size_t row, size_t column, double value)
virtual void addChild (Node *node)

Data Fields

std::string importFilename
std::vector< Node * > children

Protected Member Functions

virtual void interpret (std::string command, bool render)
virtual int getDimension (char dimension) const
virtual void rewrite ()
virtual ublas::matrix< double > createRotation (int dimension1, int dimension2, double angle) const
virtual void updateActual (Event &event)
virtual void initialize ()

Protected Attributes

int iterationCount
double angle
std::string axiom
Event turtle
Event turtleStep
Event turtleOrientation
std::map< std::string,
std::string > 
rules
std::stack< EventturtleStack
std::stack< EventturtleStepStack
std::stack< EventturtleOrientationStack
clock_t beganAt
clock_t endedAt
clock_t elapsed
Score score
ublas::matrix< double > localCoordinates

Constructor & Destructor Documentation

csound::Lindenmayer::Lindenmayer (  ) 

virtual csound::Lindenmayer::~Lindenmayer (  )  [virtual]


Member Function Documentation

virtual void csound::Lindenmayer::interpret ( std::string  command,
bool  render 
) [protected, virtual]

virtual int csound::Lindenmayer::getDimension ( char  dimension  )  const [protected, virtual]

virtual void csound::Lindenmayer::rewrite (  )  [protected, virtual]

virtual ublas::matrix<double> csound::Lindenmayer::createRotation ( int  dimension1,
int  dimension2,
double  angle 
) const [protected, virtual]

virtual void csound::Lindenmayer::updateActual ( Event event  )  [protected, virtual]

virtual void csound::Lindenmayer::initialize (  )  [protected, virtual]

virtual int csound::Lindenmayer::getIterationCount (  )  const [virtual]

virtual void csound::Lindenmayer::setIterationCount ( int  count  )  [virtual]

virtual double csound::Lindenmayer::getAngle (  )  const [virtual]

virtual void csound::Lindenmayer::setAngle ( double  angle  )  [virtual]

virtual std::string csound::Lindenmayer::getAxiom (  )  const [virtual]

virtual void csound::Lindenmayer::setAxiom ( std::string  axiom  )  [virtual]

virtual void csound::Lindenmayer::addRule ( std::string  command,
std::string  replacement 
) [virtual]

virtual std::string csound::Lindenmayer::getReplacement ( std::string  command  )  [virtual]

virtual void csound::Lindenmayer::generate (  )  [virtual]

virtual void csound::Lindenmayer::clear (  )  [virtual]

Reimplemented from csound::Node.

virtual void csound::ScoreNode::produceOrTransform ( Score score,
size_t  beginAt,
size_t  endAt,
const ublas::matrix< double > &  coordinates 
) [virtual, inherited]

The default implementation does nothing.

Reimplemented from csound::Node.

Reimplemented in csound::Cell, csound::Hocket, csound::MCRM, and csound::Rescale.

virtual Score& csound::ScoreNode::getScore (  )  [virtual, inherited]

virtual ublas::matrix<double> csound::Node::getLocalCoordinates (  )  const [virtual, inherited]

Returns the local transformation of coordinate system.

Reimplemented in csound::Random.

virtual ublas::matrix<double> csound::Node::traverse ( const ublas::matrix< double > &  globalCoordinates,
Score score 
) [virtual, inherited]

The default implementation postconcatenates its own local coordinate system with the global coordinates, then passes the score and the product of coordinate systems to each child, thus performing a depth-first traversal of the music graph.

Reimplemented in csound::Hocket, and csound::Sequence.

virtual ublas::matrix<double> csound::Node::createTransform (  )  [virtual, inherited]

virtual double& csound::Node::element ( size_t  row,
size_t  column 
) [virtual, inherited]

virtual void csound::Node::setElement ( size_t  row,
size_t  column,
double  value 
) [virtual, inherited]

virtual void csound::Node::addChild ( Node node  )  [virtual, inherited]


Field Documentation

double csound::Lindenmayer::angle [protected]

std::string csound::Lindenmayer::axiom [protected]

std::map<std::string, std::string> csound::Lindenmayer::rules [protected]

std::stack<Event> csound::Lindenmayer::turtleStack [protected]

clock_t csound::Lindenmayer::beganAt [protected]

clock_t csound::Lindenmayer::endedAt [protected]

clock_t csound::Lindenmayer::elapsed [protected]

Score csound::ScoreNode::score [protected, inherited]

std::string csound::ScoreNode::importFilename [inherited]

ublas::matrix<double> csound::Node::localCoordinates [protected, inherited]

std::vector<Node *> csound::Node::children [inherited]

Child Nodes, if any.


Generated on Sun Nov 9 00:24:52 2008 for Csound and CsoundAC by  doxygen 1.5.6