2 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 * Copyright (C) 2014-2014 - Scilab Enterprises - Clement DAVID
5 * This file must be used under the terms of the CeCILL.
6 * This source file is licensed as described in the file COPYING, which
7 * you should have received as part of this distribution. The terms
8 * are also available at
9 * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
17 #include "utilities.hxx"
19 #include "model/BaseObject.hxx"
20 #include "model/Annotation.hxx"
21 #include "model/Diagram.hxx"
22 #include "model/Block.hxx"
23 #include "model/Link.hxx"
24 #include "model/Port.hxx"
26 namespace org_scilab_modules_scicos
29 bool Model::getObjectProperty(ScicosID uid, kind_t k, object_properties_t p, double& v) const
48 else if (k == DIAGRAM)
66 model::Port* o = getObject<model::Port>(uid);
79 bool Model::getObjectProperty(ScicosID uid, kind_t k, object_properties_t p, int& v) const
92 model::Block* o = getObject<model::Block>(uid);
95 case SIM_FUNCTION_API:
96 o->getSimFunctionApi(v);
102 else if (k == DIAGRAM)
112 model::Link* o = getObject<model::Link>(uid);
127 model::Port* o = getObject<model::Port>(uid);
140 bool Model::getObjectProperty(ScicosID uid, kind_t k, object_properties_t p, bool& v) const
159 else if (k == DIAGRAM)
177 model::Port* o = getObject<model::Port>(uid);
190 bool Model::getObjectProperty(ScicosID uid, kind_t k, object_properties_t p, std::string& v) const
195 model::Annotation* o = getObject<model::Annotation>(uid);
199 o->getDescription(v);
213 model::Block* o = getObject<model::Block>(uid);
216 case INTERFACE_FUNCTION:
217 o->getInterfaceFunction(v);
219 case SIM_FUNCTION_NAME:
220 o->getSimFunctionName(v);
223 o->getSimBlocktype(v);
238 else if (k == DIAGRAM)
240 model::Diagram* o = getObject<model::Diagram>(uid);;
250 o->getVersionNumber(v);
258 model::Link* o = getObject<model::Link>(uid);
270 model::Port* o = getObject<model::Port>(uid);
286 bool Model::getObjectProperty(ScicosID uid, kind_t k, object_properties_t p, ScicosID& v) const
291 model::Annotation* o = getObject<model::Annotation>(uid);
295 o->getParentDiagram(v);
298 o->getParentBlock(v);
301 v = o->getRelatedTo();
309 model::Block* o = getObject<model::Block>(uid);
313 o->getParentDiagram(v);
316 o->getParentBlock(v);
319 o->getPortReference(v);
325 else if (k == DIAGRAM)
331 model::Link* o = getObject<model::Link>(uid);
335 o->getParentDiagram(v);
338 o->getParentBlock(v);
343 case DESTINATION_PORT:
344 o->getDestinationPort(v);
352 model::Port* o = getObject<model::Port>(uid);
356 o->getSourceBlock(v);
358 case CONNECTED_SIGNALS:
359 v = o->getConnectedSignals().front();
368 bool Model::getObjectProperty(ScicosID uid, kind_t k, object_properties_t p, std::vector<double>& v) const
373 model::Annotation* o = getObject<model::Annotation>(uid);
385 model::Block* o = getObject<model::Block>(uid);
416 else if (k == DIAGRAM)
418 model::Diagram* o = getObject<model::Diagram>(uid);;
430 model::Link* o = getObject<model::Link>(uid);
434 o->getControlPoints(v);
454 bool Model::getObjectProperty(ScicosID uid, kind_t k, object_properties_t p, std::vector<int>& v) const
467 model::Block* o = getObject<model::Block>(uid);
486 else if (k == DIAGRAM)
504 model::Port* o = getObject<model::Port>(uid);
517 bool Model::getObjectProperty(ScicosID uid, kind_t k, object_properties_t p, std::vector<std::string>& v) const
530 model::Block* o = getObject<model::Block>(uid);
540 else if (k == DIAGRAM)
542 model::Diagram* o = getObject<model::Diagram>(uid);
545 case DIAGRAM_CONTEXT:
571 bool Model::getObjectProperty(ScicosID uid, kind_t k, object_properties_t p, std::vector<ScicosID>& v) const
584 model::Block* o = getObject<model::Block>(uid);
606 else if (k == DIAGRAM)
608 model::Diagram* o = getObject<model::Diagram>(uid);
628 model::Port* o = getObject<model::Port>(uid);
631 case CONNECTED_SIGNALS:
632 v = o->getConnectedSignals();
641 } /* namespace org_scilab_modules_scicos */