35 #include "classdesc.h" 36 #include "polyXMLBase.h" 37 #include "polyJsonBase.h" 41 #include <xsd_generate_base.h> 53 using classdesc::shared_ptr;
71 float itemTabX=nan(
""), itemTabY=nan(
"");
74 float width=10, height=10;
80 x(it.m_x), y(it.m_y), scaleFactor(it.m_sf),
81 rotation(it.rotation()), width(it.iWidth()), height(it.iHeight()), ports(ports), bookmark(it.bookmark) {}
83 minsky::PlotOptions<
Note>(it), id(it.id), type(type), x(it.x), y(it.y),
84 rotation(it.rotation), width(it.width? *it.width: 0), height(it.height?*it.height:0),
90 bool stepRel=
false, visible=
true;
93 Slider(
bool stepRel,
bool visible,
double min,
double max,
double step):
94 stepRel(stepRel), visible(visible), min(min), max(max),
step(
step) {}
96 stepRel(s.stepRel), visible(s.visible), max(s.max),
step(s.
step) {}
144 init(v.
init()), miniPlot(v.miniPlotEnabled()) {
149 units=vv->units.str();
150 if (!vv->csvDialog.url.empty())
151 csvDataSpec=vv->csvDialog.spec.toSchema();
152 url=vv->csvDialog.url;
157 axis(o.axis), arg(o.arg) {}
160 data(g.table.getData()), assetClasses(g.table._assetClass()),
161 editorMode(g.editorMode()), buttonDisplay(g.buttonDisplay()),
162 variableDisplay(g.variableDisplay()), currency(g.currency)
168 static_cast<PlotOptions&
>(*this)=p;
172 {
if (s.flipped) rotation=180;}
175 bookmarks(
std::vector<
minsky::Bookmark>(g.bookmarks.begin(), g.bookmarks.end()))
182 slider(it.slider), intVar(it.intVar), dataOpData(it.dataOpData), filename(it.filename),
183 ravelState(it.ravelState), lockGroup(it.lockGroup), dimensions(it.dimensions),
184 axis(it.axis), arg(it.arg), data(it.data), assetClasses(it.assetClasses),
185 bookmarks(it.bookmarks), tensorData(convertTensorDataFromSchema2(it.tensorData)),
200 if (w.coords().size()>4)
201 coords.reset(
new std::vector<float>(w.coords()));
215 Item(g), items(g.items), inVariables(g.inVariables), outVariables(g.outVariables) {}
239 std::shared_ptr<MinskyImpl>
impl;
242 class Minsky:
public Exclude<ExcludedMinsky>
246 static const int version=3;
248 std::string minskyVersion=
"unknown";
267 Minsky(*m.model,packTensorData) {
270 zoomFactor=m.
model->zoomFactor();
271 bookmarks.insert(bookmarks.end(), m.
model->bookmarks.begin(), m.
model->bookmarks.end());
281 Minsky(classdesc::xml_unpack_t& data): schemaVersion(0)
282 {makeImpl(); minsky::loadSchema<schema2::Minsky>(*
this,data,
"Minsky");}
285 schemaVersion(m.schemaVersion),
286 wires(m.wires.begin(), m.wires.end()),
287 items(m.items.begin(), m.items.end()),
288 groups(m.groups.begin(), m.groups.end()), rungeKutta(m.rungeKutta),
289 zoomFactor(m.zoomFactor), bookmarks(m.bookmarks), dimensions(m.dimensions),
290 conversions(m.conversions) {makeImpl();}
292 void populateSchemaPublicationTabs(
const std::vector<minsky::PubTab>&);
293 void populatePublicationTabs(std::vector<minsky::PubTab>&)
const;
311 #include "schema3.cd" 312 #include "schema3.xcd" 313 #include "handleLockInfo.xcd"
vector< minsky::Bookmark > bookmarks
Optional< std::map< double, double > > dataOpData
vector< LockGroup > lockGroups
Optional< minsky::ShowSlice > showSlice
ItemBase(int id, const minsky::Item &it, const std::vector< int > &ports)
const std::string & rawName() const
accessor for the name member (may differ from name() with top level variables)
Item(int id, const minsky::PlotWidget &p, const std::vector< int > &ports)
minsky::Dimensions dimensions
Wire(int id, const minsky::Wire &w)
Optional< std::string > axis
Optional< std::string > expression
Optional< std::string > init
std::vector< Item > stocks
Optional< std::string > url
Optional< int > lockGroup
Optional< string > currency
Optional< vector< int > > outVariables
PhillipsDiagram phillipsDiagram
void xsd_generate(xsd_generate_t &g, const string &d, const minsky::Optional< T > &a)
Optional< Slider > slider
Item(int id, const minsky::SwitchIcon &s, const std::vector< int > &ports)
Slider(bool stepRel, bool visible, double min, double max, double step)
Optional< minsky::ShowSlice > showColSlice
double sliderMax() const
slider parameters
Item(int id, const minsky::Item &it, const std::vector< int > &ports)
Optional< std::vector< ecolab::Plot::LineStyle > > palette
std::shared_ptr< MinskyImpl > impl
convenience class to omit writing XML records when data absent or empty
std::vector< PhillipsFlow > flows
Slider(const schema2::Slider &s)
GodleyTable table
table data. Must be declared before editor
Optional< schema2::RavelState > ravelState
struct TCLcmd::trap::init_t init
Wire(const schema2::Wire &w)
Optional< std::vector< minsky::Bookmark > > bookmarks
Item(int id, const minsky::VariableBase &v, const std::vector< int > &ports)
Optional< std::vector< std::vector< std::string > > > data
Creation and access to the minskyTCL_obj object, which has code to record whenever Minsky's state cha...
Item(int id, const minsky::GodleyIcon &g, const std::vector< int > &ports)
Item(int id, const minsky::OperationBase &o, const std::vector< int > &ports)
Optional< std::set< std::string > > lockGroupHandles
Item(const schema2::Item &it)
Optional< bool > variableDisplay
Note(const minsky::NoteBase &x)
Note(const schema2::Note &x)
Group(int id, const minsky::Group &g)
Optional< classdesc::CDATA > tensorData
Optional< vector< int > > outVariables
Optional< std::vector< float > > coords
std::vector< PubTab > publicationTabs
working structure, not serialised
Group(const schema2::Group &g)
Optional< std::vector< minsky::GodleyAssetClass::AssetClass > > assetClasses
minsky::ConversionsMap conversions
#define CLASSDESC_ACCESS(type)
Optional< minsky::Dimensions > dimensions
Minsky(const schema2::Minsky &m)
vector< pair< double, Item > > terms
Optional< std::string > tooltip
Item(int id, const minsky::Group &g, const std::vector< int > &ports)
Optional< std::string > filename
Minsky(const minsky::Minsky &m, bool packTensorData=true)
vector< HandleLockInfo > handleLockInfo
ItemBase(const schema2::Item &it, const std::string &type="Item")
minsky::Simulation rungeKutta
Optional< minsky::DataSpecSchema > csvDataSpec
static const std::string minskyVersion
return the AEGIS assigned version number
Optional< std::string > name
void xml_pack(xml_pack_t &t, const string &d, minsky::Optional< T > &a)
bool enableSlider() const
slider parameters
bool sliderStepRel() const
slider parameters
PhillipsDiagram phillipsDiagram
double sliderStep() const
slider parameters
PhillipsFlow(int id, const minsky::Wire &w)
Minsky(classdesc::xml_unpack_t &data)
populate schema from XML data
std::vector< Item > publicationItems
std::shared_ptr< VariableValue > vValue() const
variableValue associated with this. nullptr if not associated with a variableValue ...
double sliderMin() const
slider parameters
std::vector< PublicationTab > publicationTabs
Optional< std::string > units