~vbursian/research-assistant/intervers

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
////////////////////////////////////////////////////////////////////////////////
/*! @file ExpressionNode.h   Class sExpressionNode.
- Part of RANet - Research Assistant Net Library.
- Copyright(C) 2014-2015, Viktor E. Bursian, St.Petersburg, Russia.
                          Viktor_dot_Bursian_at_mail_dot_ioffe_dot_ru
*///////////////////////////////////////////////////////////////////////////////
#ifndef ExpressionNode_H
#define ExpressionNode_H
#include "FolderNode.h"
#include "Graphicals.h"
#include "BasicMath.h"
namespace RA {
//------------------------------------------------------------------------------

ANNOUNCE_CLASS(sExpressionNode)

//---------------------------------------------------------- sExpressionNode ---

class RANet_EXPORT  sExpressionNode : public sFolderNode ,public sGraphObject
{
  STORABLE(sExpressionNode)

  public:
    virtual                   ~sExpressionNode ();
    explicit                  sExpressionNode (sString  source =sString());
    virtual psMathValue       MathValue ();
    virtual psMathValue       Result ();
    virtual sString           Text (eTextFormat ,eTextDetalization);
    virtual void              SetDocket (rcsString  new_docket);
//    virtual pcsAppearance     Appearance () const;
    virtual void              SetAppearance (psAppearance);
    virtual sBoundaries       Boundaries ();
    virtual sBoundaries       Boundaries () const;
    virtual int               Distance (rcsIntPoint  position
                                       ,rcsScales    scales  );
    virtual sString           Hint ();

  protected:
    virtual void              CopyFrom (psNode);

  protected: //fields
    bool                      CalculatedFlag;
    psMathValue               TheResult;
};

//------------------------------------------------------------------------------
} //namespace RA
#endif