Csound and CsoundAC API 5.13
Public Member Functions | Data Fields | Protected Attributes | Private Member Functions | Private Attributes

csound::MCRM Class Reference

#include <MCRM.hpp>

Inheritance diagram for csound::MCRM:

Public Member Functions

virtual void addChild (Node *node)
virtual void clear ()
virtual ublas::matrix< double > createTransform ()
virtual double & element (size_t row, size_t column)
void generate ()
virtual ublas::matrix< double > getLocalCoordinates () const
 Returns the local transformation of coordinate system.
virtual ScoregetScore ()
 MCRM ()
virtual void produceOrTransform (Score &score, size_t beginAt, size_t endAt, const ublas::matrix< double > &coordinates)
 The default implementation does nothing.
void resize (size_t transformations)
void setDepth (int depth)
virtual void setElement (size_t row, size_t column, double value)
void setTransformationElement (size_t index, size_t row, size_t column, double value)
void setWeight (size_t precursor, size_t successor, double weight)
virtual ublas::matrix< double > traverse (const ublas::matrix< double > &globalCoordinates, Score &score)
 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.
virtual ~MCRM ()

Data Fields

std::vector< Node * > children
 Child Nodes, if any.
std::string importFilename

Protected Attributes

ublas::matrix< double > localCoordinates
Score score

Private Member Functions

void iterate (int depth, size_t p, const Event &event, double weight)

Private Attributes

int depth
std::vector< ublas::matrix
< double > > 
transformations
ublas::matrix< double > weights

Constructor & Destructor Documentation

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

Member Function Documentation

virtual void csound::Node::addChild ( Node node) [virtual, inherited]
virtual void csound::Node::clear ( ) [virtual, inherited]
virtual ublas::matrix<double> csound::Node::createTransform ( ) [virtual, inherited]
virtual double& csound::Node::element ( size_t  row,
size_t  column 
) [virtual, inherited]
void csound::MCRM::generate ( )
virtual ublas::matrix<double> csound::Node::getLocalCoordinates ( ) const [virtual, inherited]

Returns the local transformation of coordinate system.

virtual Score& csound::ScoreNode::getScore ( ) [virtual, inherited]
void csound::MCRM::iterate ( int  depth,
size_t  p,
const Event event,
double  weight 
) [private]
virtual void csound::MCRM::produceOrTransform ( Score score,
size_t  beginAt,
size_t  endAt,
const ublas::matrix< double > &  compositeCordinates 
) [virtual]

The default implementation does nothing.

Derived nodes that produce notes from scratch should transform them using the composite transformation of coordinate system, which is passed in from the traverse() function.

Reimplemented from csound::ScoreNode.

void csound::MCRM::resize ( size_t  transformations)
void csound::MCRM::setDepth ( int  depth)
virtual void csound::Node::setElement ( size_t  row,
size_t  column,
double  value 
) [virtual, inherited]
void csound::MCRM::setTransformationElement ( size_t  index,
size_t  row,
size_t  column,
double  value 
)
void csound::MCRM::setWeight ( size_t  precursor,
size_t  successor,
double  weight 
)
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.


Field Documentation

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

Child Nodes, if any.

int csound::MCRM::depth [private]
std::string csound::ScoreNode::importFilename [inherited]
ublas::matrix<double> csound::Node::localCoordinates [protected, inherited]
Score csound::ScoreNode::score [protected, inherited]
std::vector< ublas::matrix<double> > csound::MCRM::transformations [private]
ublas::matrix<double> csound::MCRM::weights [private]