Csound and CsoundAC API 5.13
|
#include <MCRM.hpp>
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 Score & | getScore () |
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 |
csound::MCRM::MCRM | ( | ) |
virtual csound::MCRM::~MCRM | ( | ) | [virtual] |
virtual void csound::Node::addChild | ( | Node * | node | ) | [virtual, inherited] |
virtual void csound::Node::clear | ( | ) | [virtual, inherited] |
Reimplemented in csound::ChordLindenmayer, csound::Lindenmayer, csound::MusicModel, and csound::ScoreModel.
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.
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] |