Milo  0.1
Milo:EquationManipulationProgram
Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Attributes | List of all members
Number Class Reference

#include <nodes.h>

Inheritance diagram for Number:
Inheritance graph
[legend]
Collaboration diagram for Number:
Collaboration graph
[legend]

Public Member Functions

void getNumber (Parser &p)
 
Constructor and Virtual Destructor
 Number (Parser &p, Node *parent)
 
 Number (std::string real, Node *parent, bool neg=false, Node::Select s=Node::Select::NONE)
 
 Number (int n, Node *parent, bool neg=false, Node::Select s=Node::Select::NONE)
 
 Number (double d, Node *parent, bool neg=false, Node::Select s=Node::Select::NONE)
 
 Number (EqnXMLParser &in, Node *parent)
 
 ~Number ()
 
Virtual Public Member Functions
std::string toString () const
 
const std::string & getName () const
 
std::type_index getType () const
 
bool simplify ()
 
- Public Member Functions inherited from Node
void calculateSize (UI::Graphics &gc)
 
void out (XML::Stream &xml)
 
void calculateOrigin (UI::Graphics &gc, int x, int y)
 
void setUpDraw (UI::Graphics &gc)
 
void draw (UI::Graphics &gc) const
 
void setSelect (Select s)
 
Select getSelect () const
 
void setDrawParenthesis (bool fDrawPar)
 
bool getDrawParenthesis () const
 
const Frame & getFrame () const
 
Node * first ()
 
Node * last ()
 
Node * getNextLeft ()
 
Node * getNextRight ()
 
void setParent (Node *parent)
 
Node * getParent () const
 
int getDepth () const
 
int getNth () const
 
void addNth (int n)
 
void multNth (int n)
 
void setNth (int n)
 
void negative ()
 
bool getSign () const
 
Complex getValue () const
 
std::shared_ptr< Node > getSharedPtr ()
 
 Node (Node *parent=nullptr, bool fNeg=false, Select s=NONE)
 
 Node (EqnXMLParser &in, Node *parent)
 
virtual ~Node ()
 Abstract base class needs virtual desctructor.
 
virtual bool isLeaf () const
 
virtual bool isFactor () const
 
virtual Node * findNode (int x, int y)
 
virtual Node * findNode (const Box &b)
 
virtual int numFactors () const
 
virtual void normalize ()
 
virtual bool less (NodePtr b) const
 

Static Public Member Functions

static Number * parse (Parser &p, Node *parent)
 
- Static Public Member Functions inherited from Node
static bool createNodeByName (std::string name, Equation &eqn)
 

Static Public Attributes

static const std::string name = "number"
 Name of Number class.
 
static const std::type_index type = typeid(Number)
 Type of Number class.
 
- Static Public Attributes inherited from Node
static const std::vector< std::string > select_tags = { "NONE", "START", "END", "ALL" }
 

Private Attributes

double m_value
 Value of Number.
 
bool m_isInteger
 True, if integer.
 
Box m_internal
 Bounding box of this node.
 

Virtual Private Member Functions

static std::string getInteger (Parser &p)
 
void xml_out (XML::Stream &xml) const
 
Frame calcSize (UI::Graphics &gc)
 
void calcOrig (UI::Graphics &gc, int x, int y)
 
void drawNode (UI::Graphics &gc) const
 
Complex getNodeValue () const
 

Additional Inherited Members

- Public Types inherited from Node
enum  Select { NONE, START, END, ALL }
 

Detailed Description

Represents a Number factor node that contains a real value. Complex numbers are represented with with the i Constant factor.

Constructor & Destructor Documentation

Number::Number ( Parser &  p,
Node *  parent 
)
inline

Parser constructor for Number class.

Parameters
pParser object.
parentParent node.
Number::Number ( std::string  real,
Node *  parent,
bool  neg = false,
Node::Select  s = Node::Select::NONE 
)
inline

Constructor for Number class.

Parameters
realString containing real value.
parentParent node.
negIf true, node is negative.
sSelection state of node.
Number::Number ( int  n,
Node *  parent,
bool  neg = false,
Node::Select  s = Node::Select::NONE 
)
inline

Constructor for Number class.

Parameters
nInteger containing real value.
parentParent node.
negIf true, node is negative.
sSelection state of node.
Number::Number ( double  d,
Node *  parent,
bool  neg = false,
Node::Select  s = Node::Select::NONE 
)
inline

Constructor for Number class.

Parameters
dDouble containing real value.
parentParent node.
negIf true, node is negative.
sSelection state of node.
Number::Number ( EqnXMLParser &  in,
Node *  parent 
)

XML constructor for Number class. Read in XML for Number class.

Parameters
inXML input stream.
parentParent node object.
Number::~Number ( )
inline

Abstract base class needs virtual destructor.

Member Function Documentation

void Number::calcOrig ( UI::Graphics &  gc,
int  x,
int  y 
)
privatevirtual

Calculate origin of this node offset from the point (x,y) given it.

Parameters
gcGraphics context.
xHorizontal origin.
yVertical origin.

Implements Node.

Node::Frame Number::calcSize ( UI::Graphics &  gc)
privatevirtual

Calculate size of this node in given graphics context.

Parameters
gcGraphics context.
Returns
Return frame containing size of this node.

Implements Node.

void Number::drawNode ( UI::Graphics &  gc) const
privatevirtual

Draw this node in the given graphical context.

Parameters
gcGraphical context.

Implements Node.

string Number::getInteger ( Parser &  p)
staticprivate

Static helper function to parse integer from Parser.

Parameters
pParser object.
Returns
String containing integer.
const std::string& Number::getName ( ) const
inlinevirtual

Get name of this class.

Returns
Name of this class.

Implements Node.

Complex Number::getNodeValue ( ) const
inlineprivatevirtual

Get value of this subtree.

Returns
Complex value of this subtree.

Implements Node.

void Number::getNumber ( Parser &  p)

Load numeric value from Parser.

Parameters
pParser object.
std::type_index Number::getType ( ) const
inlinevirtual

Get name of this class.

Returns
Name of this class.

Implements Node.

Number * Number::parse ( Parser &  p,
Node *  parent 
)
static

Static helper function to parse Number class.

Parameters
pParser object pointing to operator.
parentParent node.
Returns
Number object or null if number not present.
bool Number::simplify ( )
virtual

Attempt to algebraically simplify the subtree this node is the root.

Returns
True, if subtree was changed.

Reimplemented from Node.

string Number::toString ( ) const
virtual

Get string representation of Number value.

Returns
String representation of Number value.

Implements Node.

void Number::xml_out ( XML::Stream &  xml) const
privatevirtual

Output XML of this node.

Parameters
xmlXML output stream.

Implements Node.


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