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
31 model::BaseObject* baseObject = getObject(uid);
32 if (baseObject == nullptr)
53 else if (k == DIAGRAM)
71 model::Port* o = static_cast<model::Port*>(baseObject);
84 bool Model::getObjectProperty(ScicosID uid, kind_t k, object_properties_t p, int& v) const
86 model::BaseObject* baseObject = getObject(uid);
87 if (baseObject == nullptr)
102 model::Block* o = static_cast<model::Block*>(baseObject);
105 case SIM_FUNCTION_API:
106 o->getSimFunctionApi(v);
112 else if (k == DIAGRAM)
122 model::Link* o = static_cast<model::Link*>(baseObject);
137 model::Port* o = static_cast<model::Port*>(baseObject);
150 bool Model::getObjectProperty(ScicosID uid, kind_t k, object_properties_t p, bool& v) const
152 model::BaseObject* baseObject = getObject(uid);
153 if (baseObject == nullptr)
174 else if (k == DIAGRAM)
192 model::Port* o = static_cast<model::Port*>(baseObject);
205 bool Model::getObjectProperty(ScicosID uid, kind_t k, object_properties_t p, std::string& v) const
207 model::BaseObject* baseObject = getObject(uid);
208 if (baseObject == nullptr)
215 model::Annotation* o = static_cast<model::Annotation*>(baseObject);
219 o->getDescription(v);
233 model::Block* o = static_cast<model::Block*>(baseObject);
236 case INTERFACE_FUNCTION:
237 o->getInterfaceFunction(v);
239 case SIM_FUNCTION_NAME:
240 o->getSimFunctionName(v);
243 o->getSimBlocktype(v);
258 else if (k == DIAGRAM)
260 model::Diagram* o = static_cast<model::Diagram*>(baseObject);
270 o->getVersionNumber(v);
278 model::Link* o = static_cast<model::Link*>(baseObject);
290 model::Port* o = static_cast<model::Port*>(baseObject);
306 bool Model::getObjectProperty(ScicosID uid, kind_t k, object_properties_t p, ScicosID& v) const
308 model::BaseObject* baseObject = getObject(uid);
309 if (baseObject == nullptr)
316 model::Annotation* o = static_cast<model::Annotation*>(baseObject);
320 o->getParentDiagram(v);
323 o->getParentBlock(v);
326 v = o->getRelatedTo();
334 model::Block* o = static_cast<model::Block*>(baseObject);
338 o->getParentDiagram(v);
341 o->getParentBlock(v);
344 o->getPortReference(v);
350 else if (k == DIAGRAM)
356 model::Link* o = static_cast<model::Link*>(baseObject);
360 o->getParentDiagram(v);
363 o->getParentBlock(v);
368 case DESTINATION_PORT:
369 o->getDestinationPort(v);
377 model::Port* o = static_cast<model::Port*>(baseObject);
381 o->getSourceBlock(v);
383 case CONNECTED_SIGNALS:
384 v = o->getConnectedSignals().front();
393 bool Model::getObjectProperty(ScicosID uid, kind_t k, object_properties_t p, std::vector<double>& v) const
395 model::BaseObject* baseObject = getObject(uid);
396 if (baseObject == nullptr)
403 model::Annotation* o = static_cast<model::Annotation*>(baseObject);
415 model::Block* o = static_cast<model::Block*>(baseObject);
446 else if (k == DIAGRAM)
448 model::Diagram* o = static_cast<model::Diagram*>(baseObject);
460 model::Link* o = static_cast<model::Link*>(baseObject);
464 o->getControlPoints(v);
484 bool Model::getObjectProperty(ScicosID uid, kind_t k, object_properties_t p, std::vector<int>& v) const
486 model::BaseObject* baseObject = getObject(uid);
487 if (baseObject == nullptr)
502 model::Block* o = static_cast<model::Block*>(baseObject);
521 else if (k == DIAGRAM)
539 model::Port* o = static_cast<model::Port*>(baseObject);
552 bool Model::getObjectProperty(ScicosID uid, kind_t k, object_properties_t p, std::vector<std::string>& v) const
554 model::BaseObject* baseObject = getObject(uid);
555 if (baseObject == nullptr)
570 model::Block* o = static_cast<model::Block*>(baseObject);
580 else if (k == DIAGRAM)
582 model::Diagram* o = static_cast<model::Diagram*>(baseObject);
585 case DIAGRAM_CONTEXT:
611 bool Model::getObjectProperty(ScicosID uid, kind_t k, object_properties_t p, std::vector<ScicosID>& v) const
613 model::BaseObject* baseObject = getObject(uid);
614 if (baseObject == nullptr)
629 model::Block* o = static_cast<model::Block*>(baseObject);
651 else if (k == DIAGRAM)
653 model::Diagram* o = static_cast<model::Diagram*>(baseObject);
673 model::Port* o = static_cast<model::Port*>(baseObject);
676 case CONNECTED_SIGNALS:
677 v = o->getConnectedSignals();
686 } /* namespace org_scilab_modules_scicos */