33 #include "classdesc.h" 35 #include "polyXMLBase.h" 36 #include "polyJsonBase.h" 42 #include <xsd_generate_base.h> 53 using classdesc::shared_ptr;
57 void unpack(classdesc::pack_t&, civita::TensorVal&);
79 x(it.m_x), y(it.m_y), zoomFactor(it.zoomFactor()), rotation(it.rotation()),
82 PlotOptions<
Note>(it), id(it.id), type(type) {}
87 bool visible=
true, stepRel=
false;
90 Slider(
bool v,
bool stepRel,
double min,
double max,
double step):
91 visible(v), stepRel(stepRel), min(min), max(max),
step(
step) {}
125 ItemBase(it,
"Operation:"+
minsky::OperationType::typeName(it.type)),
126 name(it.name), dataOpData(it.data) {
132 type=
"Variable:constant";
137 ItemBase(it,
"Variable:"+
minsky::VariableType::typeName(it.type)),
141 ItemBase(it,
"PlotWidget"), name(it.title)
159 width.reset(
new float(layout.
width));
160 else if (type==
"PlotWidget")
161 width.reset(
new float(150));
163 height.reset(
new float(layout.
height));
164 else if (type==
"PlotWidget")
165 height.reset(
new float(150));
181 if (layout.
coords.size()>4)
182 coords.reset(
new std::vector<float>(layout.
coords));
193 Item(g), items(g.items) {}
199 static const int version=2;
214 Minsky(classdesc::xml_unpack_t& data): schemaVersion(0)
215 {minsky::loadSchema<schema1::Minsky>(*
this,data,
"Minsky");}
222 #include "schema2.cd" 223 #include "schema2.xcd"
Optional< classdesc::CDATA > tensorData
ItemBase(int id, const minsky::Item &it, const std::vector< int > &ports)
Optional< int > lockGroup
shared_ptr< Side > legend
Optional< std::map< double, double > > dataOpData
Note(const minsky::NoteBase &x)
Optional< std::vector< float > > coords
Optional< std::vector< minsky::Bookmark > > bookmarks
Optional< std::string > axis
Optional< Slider > slider
Item(const schema1::Item &it)
void addLayout(const schema1::UnionLayout &layout)
Optional< std::string > units
Note(const schema1::Item &x)
Optional< float > iconScale
minsky::Dimensions dimensions
convenience class to omit writing XML records when data absent or empty
Slider(bool v, bool stepRel, double min, double max, double step)
minsky::OperationType::Type type
Optional< std::vector< minsky::GodleyAssetClass::AssetClass > > assetClasses
ItemBase(const schema1::Item &it, const std::string &type="Item")
Item(const schema1::Plot &it)
Wire(const schema1::Wire &w)
struct TCLcmd::trap::init_t init
minsky::Simulation rungeKutta
structure representing a union of all of the above Layout classes, for xml_unpack ...
Creation and access to the minskyTCL_obj object, which has code to record whenever Minsky's state cha...
Optional< std::string > filename
Item(const schema1::Switch &it)
Item(const schema1::Operation &it)
Optional< RavelState > ravelState
Optional< std::string > init
Optional< minsky::Dimensions > dimensions
void unpack(classdesc::pack_t &b, civita::XVector &a)
Item(const schema1::Variable &it)
Optional< std::vector< ecolab::Plot::LineStyle > > palette
Optional< std::string > name
void addLayout(const schema1::UnionLayout &layout)
Item(const schema1::Group &it)
Optional< vector< int > > outVariables
Optional< std::string > tooltip
string to_string(CONST84 char *x)
vector< minsky::Bookmark > bookmarks
Optional< std::vector< std::vector< std::string > > > data
Group(const schema1::Group &g)
note this assumes that ids have been uniquified prior to this call
Minsky(classdesc::xml_unpack_t &data)
populate schema from XML data
minsky::ConversionsMap conversions