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 update_status_t Model::setObjectProperty(ScicosID uid, kind_t k, object_properties_t p, double v)
31 model::BaseObject* baseObject = getObject(uid);
32 if (baseObject == nullptr)
53 else if (k == DIAGRAM)
71 model::Port* o = static_cast<model::Port*>(baseObject);
75 return o->setFiring(v);
83 update_status_t Model::setObjectProperty(ScicosID uid, kind_t k, object_properties_t p, int v)
85 model::BaseObject* baseObject = getObject(uid);
86 if (baseObject == nullptr)
101 model::Block* o = static_cast<model::Block*>(baseObject);
104 case SIM_FUNCTION_API:
105 return o->setSimFunctionApi(v);
110 else if (k == DIAGRAM)
120 model::Link* o = static_cast<model::Link*>(baseObject);
124 return o->setColor(v);
126 return o->setKind(v);
133 model::Port* o = static_cast<model::Port*>(baseObject);
137 return o->setKind(v);
145 update_status_t Model::setObjectProperty(ScicosID uid, kind_t k, object_properties_t p, bool v)
147 model::BaseObject* baseObject = getObject(uid);
148 if (baseObject == nullptr)
169 else if (k == DIAGRAM)
187 model::Port* o = static_cast<model::Port*>(baseObject);
191 return o->setImplicit(v);
199 update_status_t Model::setObjectProperty(ScicosID uid, kind_t k, object_properties_t p, ScicosID v)
201 model::BaseObject* baseObject = getObject(uid);
202 if (baseObject == nullptr)
209 model::Annotation* o = static_cast<model::Annotation*>(baseObject);
213 return o->setParentDiagram(v);
215 return o->setParentBlock(v);
222 model::Block* o = static_cast<model::Block*>(baseObject);
226 return o->setParentDiagram(v);
228 return o->setParentBlock(v);
230 return o->setPortReference(v);
235 else if (k == DIAGRAM)
245 model::Link* o = static_cast<model::Link*>(baseObject);
249 return o->setParentDiagram(v);
251 return o->setParentBlock(v);
253 return o->setSourcePort(v);
254 case DESTINATION_PORT:
255 return o->setDestinationPort(v);
262 model::Port* o = static_cast<model::Port*>(baseObject);
266 return o->setSourceBlock(v);
267 case CONNECTED_SIGNALS:
268 return o->setConnectedSignals(std::vector<ScicosID> (1, v));
276 update_status_t Model::setObjectProperty(ScicosID uid, kind_t k, object_properties_t p, std::string v)
278 model::BaseObject* baseObject = getObject(uid);
279 if (baseObject == nullptr)
286 model::Annotation* o = static_cast<model::Annotation*>(baseObject);
290 return o->setDescription(v);
292 return o->setFont(v);
294 return o->setFontSize(v);
301 model::Block* o = static_cast<model::Block*>(baseObject);
304 case INTERFACE_FUNCTION:
305 return o->setInterfaceFunction(v);
306 case SIM_FUNCTION_NAME:
307 return o->setSimFunctionName(v);
309 return o->setSimBlocktype(v);
311 return o->setStyle(v);
313 return o->setLabel(v);
320 else if (k == DIAGRAM)
322 model::Diagram* o = static_cast<model::Diagram*>(baseObject);
326 return o->setTitle(v);
328 return o->setPath(v);
330 return o->setVersionNumber(v);
337 model::Link* o = static_cast<model::Link*>(baseObject);
341 return o->setLabel(v);
348 model::Port* o = static_cast<model::Port*>(baseObject);
352 return o->setStyle(v);
354 return o->setLabel(v);
362 update_status_t Model::setObjectProperty(ScicosID uid, kind_t k, object_properties_t p, const std::vector<double>& v)
364 model::BaseObject* baseObject = getObject(uid);
365 if (baseObject == nullptr)
372 model::Annotation* o = static_cast<model::Annotation*>(baseObject);
376 return o->setGeometry(v);
383 model::Block* o = static_cast<model::Block*>(baseObject);
387 return o->setGeometry(v);
389 return o->setAngle(v);
391 return o->setExprs(v);
393 return o->setState(v);
395 return o->setDState(v);
397 return o->setODState(v);
399 return o->setRpar(v);
401 return o->setOpar(v);
406 else if (k == DIAGRAM)
408 model::Diagram* o = static_cast<model::Diagram*>(baseObject);
412 return o->setProperties(v);
419 model::Link* o = static_cast<model::Link*>(baseObject);
423 return o->setControlPoints(v);
425 return o->setThick(v);
441 update_status_t Model::setObjectProperty(ScicosID uid, kind_t k, object_properties_t p, const std::vector<int>& v)
443 model::BaseObject* baseObject = getObject(uid);
444 if (baseObject == nullptr)
459 model::Block* o = static_cast<model::Block*>(baseObject);
463 return o->setSimDepUT(v);
465 return o->setNZcross(v);
467 return o->setNMode(v);
469 return o->setIpar(v);
474 else if (k == DIAGRAM)
492 model::Port* o = static_cast<model::Port*>(baseObject);
496 return o->setDataType(this, v);
504 update_status_t Model::setObjectProperty(ScicosID uid, kind_t k, object_properties_t p, const std::vector<std::string>& v)
506 model::BaseObject* baseObject = getObject(uid);
507 if (baseObject == nullptr)
522 model::Block* o = static_cast<model::Block*>(baseObject);
526 return o->setEquations(v);
531 else if (k == DIAGRAM)
533 model::Diagram* o = static_cast<model::Diagram*>(baseObject);
536 case DIAGRAM_CONTEXT:
537 return o->setContext(v);
561 update_status_t Model::setObjectProperty(ScicosID uid, kind_t k, object_properties_t p, const std::vector<ScicosID>& v)
563 model::BaseObject* baseObject = getObject(uid);
564 if (baseObject == nullptr)
579 model::Block* o = static_cast<model::Block*>(baseObject);
589 return o->setEout(v);
591 return o->setChildren(v);
596 else if (k == DIAGRAM)
598 model::Diagram* o = static_cast<model::Diagram*>(baseObject);
602 return o->setChildren(v);
617 model::Port* o = static_cast<model::Port*>(baseObject);
620 case CONNECTED_SIGNALS:
621 return o->setConnectedSignals(v);
629 } /* namespace org_scilab_modules_scicos */