1 /** 2 * @file CSGSetOperator.h 3 * @brief Definition of the CSGSetOperator class. 4 * @author SBMLTeam 5 * 6 * <!-------------------------------------------------------------------------- 7 * This file is part of libSBML. Please visit http://sbml.org for more 8 * information about SBML, and the latest version of libSBML. 9 * 10 * Copyright (C) 2020 jointly by the following organizations: 11 * 1. California Institute of Technology, Pasadena, CA, USA 12 * 2. University of Heidelberg, Heidelberg, Germany 13 * 3. University College London, London, UK 14 * 15 * Copyright (C) 2019 jointly by the following organizations: 16 * 1. California Institute of Technology, Pasadena, CA, USA 17 * 2. University of Heidelberg, Heidelberg, Germany 18 * 19 * Copyright (C) 2013-2018 jointly by the following organizations: 20 * 1. California Institute of Technology, Pasadena, CA, USA 21 * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK 22 * 3. University of Heidelberg, Heidelberg, Germany 23 * 24 * Copyright (C) 2009-2013 jointly by the following organizations: 25 * 1. California Institute of Technology, Pasadena, CA, USA 26 * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK 27 * 28 * Copyright (C) 2006-2008 by the California Institute of Technology, 29 * Pasadena, CA, USA 30 * 31 * Copyright (C) 2002-2005 jointly by the following organizations: 32 * 1. California Institute of Technology, Pasadena, CA, USA 33 * 2. Japan Science and Technology Agency, Japan 34 * 35 * This library is free software; you can redistribute it and/or modify it 36 * under the terms of the GNU Lesser General Public License as published by the 37 * Free Software Foundation. A copy of the license agreement is provided in the 38 * file named "LICENSE.txt" included with this software distribution and also 39 * available online as http://sbml.org/software/libsbml/license.html 40 * ------------------------------------------------------------------------ --> 41 * 42 * @class CSGSetOperator 43 * @sbmlbrief{spatial} TODO:Definition of the CSGSetOperator class. 44 */ 45 46 /** 47 * <!-- ~ ~ ~ ~ ~ Start of common documentation strings ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 48 * The following text is used as common documentation blocks copied multiple 49 * times elsewhere in this file. The use of @class is a hack needed because 50 * Doxygen's @copydetails command has limited functionality. Symbols 51 * beginning with "doc_" are marked as ignored in our Doxygen configuration. 52 * ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ --> 53 * 54 * 55 * @class doc_csgsetoperator_operationType 56 * 57 * @par 58 * The attribute "operationType" on a CSGSetOperator object is used to TODO:add 59 * explanation 60 * 61 * In the SBML 62 * Level 3 Version 1 Spatial specification, the following are the 63 * allowable values for "operationType": 64 * <ul> 65 * <li> @c "union", TODO:add description 66 * 67 * <li> @c "intersection", TODO:add description 68 * 69 * <li> @c "difference", TODO:add description 70 * 71 * </ul> 72 */ 73 74 75 #ifndef CSGSetOperator_H__ 76 #define CSGSetOperator_H__ 77 78 79 #include <sbml/common/extern.h> 80 #include <sbml/common/sbmlfwd.h> 81 #include <sbml/packages/spatial/common/spatialfwd.h> 82 83 84 #ifdef __cplusplus 85 86 87 #include <string> 88 89 90 #include <sbml/packages/spatial/sbml/CSGNode.h> 91 #include <sbml/packages/spatial/extension/SpatialExtension.h> 92 #include <sbml/packages/spatial/sbml/ListOfCSGNodes.h> 93 94 95 LIBSBML_CPP_NAMESPACE_BEGIN 96 97 98 class LIBSBML_EXTERN CSGSetOperator : public CSGNode 99 { 100 protected: 101 102 /** @cond doxygenLibsbmlInternal */ 103 104 SetOperation_t mOperationType; 105 std::string mComplementA; 106 std::string mComplementB; 107 ListOfCSGNodes mCSGNodes; 108 109 /** @endcond */ 110 111 public: 112 113 /** 114 * Creates a new CSGSetOperator using the given SBML Level, Version and 115 * “spatial” package version. 116 * 117 * @param level an unsigned int, the SBML Level to assign to this 118 * CSGSetOperator. 119 * 120 * @param version an unsigned int, the SBML Version to assign to this 121 * CSGSetOperator. 122 * 123 * @param pkgVersion an unsigned int, the SBML Spatial Version to assign to 124 * this CSGSetOperator. 125 * 126 * @copydetails doc_note_setting_lv_pkg 127 */ 128 CSGSetOperator(unsigned int level = SpatialExtension::getDefaultLevel(), 129 unsigned int version = SpatialExtension::getDefaultVersion(), 130 unsigned int pkgVersion = 131 SpatialExtension::getDefaultPackageVersion()); 132 133 134 /** 135 * Creates a new CSGSetOperator using the given SpatialPkgNamespaces object. 136 * 137 * @copydetails doc_what_are_sbml_package_namespaces 138 * 139 * @param spatialns the SpatialPkgNamespaces object. 140 * 141 * @copydetails doc_note_setting_lv_pkg 142 */ 143 CSGSetOperator(SpatialPkgNamespaces *spatialns); 144 145 146 /** 147 * Copy constructor for CSGSetOperator. 148 * 149 * @param orig the CSGSetOperator instance to copy. 150 */ 151 CSGSetOperator(const CSGSetOperator& orig); 152 153 154 /** 155 * Assignment operator for CSGSetOperator. 156 * 157 * @param rhs the CSGSetOperator object whose values are to be used as the 158 * basis of the assignment. 159 */ 160 CSGSetOperator& operator=(const CSGSetOperator& rhs); 161 162 163 /** 164 * Creates and returns a deep copy of this CSGSetOperator object. 165 * 166 * @return a (deep) copy of this CSGSetOperator object. 167 */ 168 virtual CSGSetOperator* clone() const; 169 170 171 /** 172 * Destructor for CSGSetOperator. 173 */ 174 virtual ~CSGSetOperator(); 175 176 177 /** 178 * Returns the value of the "operationType" attribute of this CSGSetOperator. 179 * 180 * @return the value of the "operationType" attribute of this CSGSetOperator 181 * as a SetOperation_t. 182 * 183 * @copydetails doc_csgsetoperator_operationType 184 * @if clike The value is drawn from the enumeration @ref SetOperation_t 185 * @endif 186 * The possible values returned by this method are: 187 * @li @sbmlconstant{SPATIAL_SETOPERATION_UNION, SetOperation_t} 188 * @li @sbmlconstant{SPATIAL_SETOPERATION_INTERSECTION, SetOperation_t} 189 * @li @sbmlconstant{SPATIAL_SETOPERATION_DIFFERENCE, SetOperation_t} 190 * @li @sbmlconstant{SPATIAL_SETOPERATION_INVALID, SetOperation_t} 191 */ 192 SetOperation_t getOperationType() const; 193 194 195 /** 196 * Returns the value of the "operationType" attribute of this CSGSetOperator. 197 * 198 * @return the value of the "operationType" attribute of this CSGSetOperator 199 * as a string. 200 * 201 * @copydetails doc_csgsetoperator_operationType 202 * The possible values returned by this method are: 203 * @li @c "union" 204 * @li @c "intersection" 205 * @li @c "difference" 206 * @li @c "invalid SetOperation value" 207 */ 208 std::string getOperationTypeAsString() const; 209 210 211 /** 212 * Returns the value of the "complementA" attribute of this CSGSetOperator. 213 * 214 * @return the value of the "complementA" attribute of this CSGSetOperator as 215 * a string. 216 */ 217 const std::string& getComplementA() const; 218 219 220 /** 221 * Returns the value of the "complementB" attribute of this CSGSetOperator. 222 * 223 * @return the value of the "complementB" attribute of this CSGSetOperator as 224 * a string. 225 */ 226 const std::string& getComplementB() const; 227 228 229 /** 230 * Predicate returning @c true if this CSGSetOperator's "operationType" 231 * attribute is set. 232 * 233 * @return @c true if this CSGSetOperator's "operationType" attribute has 234 * been set, otherwise @c false is returned. 235 * 236 * @copydetails doc_csgsetoperator_operationType 237 */ 238 bool isSetOperationType() const; 239 240 241 /** 242 * Predicate returning @c true if this CSGSetOperator's "complementA" 243 * attribute is set. 244 * 245 * @return @c true if this CSGSetOperator's "complementA" attribute has been 246 * set, otherwise @c false is returned. 247 */ 248 bool isSetComplementA() const; 249 250 251 /** 252 * Predicate returning @c true if this CSGSetOperator's "complementB" 253 * attribute is set. 254 * 255 * @return @c true if this CSGSetOperator's "complementB" attribute has been 256 * set, otherwise @c false is returned. 257 */ 258 bool isSetComplementB() const; 259 260 261 /** 262 * Sets the value of the "operationType" attribute of this CSGSetOperator. 263 * 264 * @param operationType @if clike SetOperation_t@else int@endif value of the 265 * "operationType" attribute to be set. 266 * 267 * @copydetails doc_returns_success_code 268 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 269 * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, 270 * OperationReturnValues_t} 271 * 272 * @copydetails doc_csgsetoperator_operationType 273 */ 274 int setOperationType(const SetOperation_t operationType); 275 276 277 /** 278 * Sets the value of the "operationType" attribute of this CSGSetOperator. 279 * 280 * @param operationType std::string& of the "operationType" attribute to be 281 * set. 282 * 283 * @copydetails doc_returns_success_code 284 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 285 * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, 286 * OperationReturnValues_t} 287 * 288 * @copydetails doc_csgsetoperator_operationType 289 */ 290 int setOperationType(const std::string& operationType); 291 292 293 /** 294 * Sets the value of the "complementA" attribute of this CSGSetOperator. 295 * 296 * @param complementA std::string& value of the "complementA" attribute to be 297 * set. 298 * 299 * @copydetails doc_returns_success_code 300 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 301 * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, 302 * OperationReturnValues_t} 303 */ 304 int setComplementA(const std::string& complementA); 305 306 307 /** 308 * Sets the value of the "complementB" attribute of this CSGSetOperator. 309 * 310 * @param complementB std::string& value of the "complementB" attribute to be 311 * set. 312 * 313 * @copydetails doc_returns_success_code 314 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 315 * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, 316 * OperationReturnValues_t} 317 */ 318 int setComplementB(const std::string& complementB); 319 320 321 /** 322 * Unsets the value of the "operationType" attribute of this CSGSetOperator. 323 * 324 * @copydetails doc_returns_one_success_code 325 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 326 * 327 * @copydetails doc_csgsetoperator_operationType 328 */ 329 int unsetOperationType(); 330 331 332 /** 333 * Unsets the value of the "complementA" attribute of this CSGSetOperator. 334 * 335 * @copydetails doc_returns_success_code 336 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 337 * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t} 338 */ 339 int unsetComplementA(); 340 341 342 /** 343 * Unsets the value of the "complementB" attribute of this CSGSetOperator. 344 * 345 * @copydetails doc_returns_success_code 346 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 347 * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t} 348 */ 349 int unsetComplementB(); 350 351 352 /** 353 * Returns the ListOfCSGNodes from this CSGSetOperator. 354 * 355 * @return the ListOfCSGNodes from this CSGSetOperator. 356 * 357 * @copydetails doc_returned_unowned_pointer 358 * 359 * @see addCSGNode(const CSGNode* object) 360 * @see createCSGNode() 361 * @see getCSGNode(const std::string& sid) 362 * @see getCSGNode(unsigned int n) 363 * @see getNumCSGNodes() 364 * @see removeCSGNode(const std::string& sid) 365 * @see removeCSGNode(unsigned int n) 366 */ 367 const ListOfCSGNodes* getListOfCSGNodes() const; 368 369 370 /** 371 * Returns the ListOfCSGNodes from this CSGSetOperator. 372 * 373 * @return the ListOfCSGNodes from this CSGSetOperator. 374 * 375 * @copydetails doc_returned_unowned_pointer 376 * 377 * @see addCSGNode(const CSGNode* object) 378 * @see createCSGNode() 379 * @see getCSGNode(const std::string& sid) 380 * @see getCSGNode(unsigned int n) 381 * @see getNumCSGNodes() 382 * @see removeCSGNode(const std::string& sid) 383 * @see removeCSGNode(unsigned int n) 384 */ 385 ListOfCSGNodes* getListOfCSGNodes(); 386 387 388 /** 389 * Get a CSGNode from the CSGSetOperator. 390 * 391 * @param n an unsigned int representing the index of the CSGNode to 392 * retrieve. 393 * 394 * @return the nth CSGNode in the ListOfCSGNodes within this CSGSetOperator 395 * or @c NULL if no such object exists. 396 * 397 * @copydetails doc_returned_unowned_pointer 398 * 399 * @see addCSGNode(const CSGNode* object) 400 * @see createCSGNode() 401 * @see getCSGNode(const std::string& sid) 402 * @see getNumCSGNodes() 403 * @see removeCSGNode(const std::string& sid) 404 * @see removeCSGNode(unsigned int n) 405 */ 406 CSGNode* getCSGNode(unsigned int n); 407 408 409 /** 410 * Get a CSGNode from the CSGSetOperator. 411 * 412 * @param n an unsigned int representing the index of the CSGNode to 413 * retrieve. 414 * 415 * @return the nth CSGNode in the ListOfCSGNodes within this CSGSetOperator 416 * or @c NULL if no such object exists. 417 * 418 * @copydetails doc_returned_unowned_pointer 419 * 420 * @see addCSGNode(const CSGNode* object) 421 * @see createCSGNode() 422 * @see getCSGNode(const std::string& sid) 423 * @see getNumCSGNodes() 424 * @see removeCSGNode(const std::string& sid) 425 * @see removeCSGNode(unsigned int n) 426 */ 427 const CSGNode* getCSGNode(unsigned int n) const; 428 429 430 /** 431 * Get a CSGNode from the CSGSetOperator based on its identifier. 432 * 433 * @param sid a string representing the identifier of the CSGNode to 434 * retrieve. 435 * 436 * @return the CSGNode in the ListOfCSGNodes within this CSGSetOperator with 437 * the given @p sid or @c NULL if no such CSGNode exists. 438 * 439 * @copydetails doc_returned_unowned_pointer 440 * 441 * @see addCSGNode(const CSGNode* object) 442 * @see createCSGNode() 443 * @see getCSGNode(unsigned int n) 444 * @see getNumCSGNodes() 445 * @see removeCSGNode(const std::string& sid) 446 * @see removeCSGNode(unsigned int n) 447 */ 448 CSGNode* getCSGNode(const std::string& sid); 449 450 451 /** 452 * Get a CSGNode from the CSGSetOperator based on its identifier. 453 * 454 * @param sid a string representing the identifier of the CSGNode to 455 * retrieve. 456 * 457 * @return the CSGNode in the ListOfCSGNodes within this CSGSetOperator with 458 * the given @p sid or @c NULL if no such CSGNode exists. 459 * 460 * @copydetails doc_returned_unowned_pointer 461 * 462 * @see addCSGNode(const CSGNode* object) 463 * @see createCSGNode() 464 * @see getCSGNode(unsigned int n) 465 * @see getNumCSGNodes() 466 * @see removeCSGNode(const std::string& sid) 467 * @see removeCSGNode(unsigned int n) 468 */ 469 const CSGNode* getCSGNode(const std::string& sid) const; 470 471 472 /** 473 * Adds a copy of the given CSGNode to this CSGSetOperator. 474 * 475 * @param csgn the CSGNode object to add. 476 * 477 * @copydetails doc_returns_success_code 478 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 479 * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t} 480 * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t} 481 * @li @sbmlconstant{LIBSBML_LEVEL_MISMATCH, OperationReturnValues_t} 482 * @li @sbmlconstant{LIBSBML_VERSION_MISMATCH, OperationReturnValues_t} 483 * @li @sbmlconstant{LIBSBML_PKG_VERSION_MISMATCH, OperationReturnValues_t} 484 * @li @sbmlconstant{LIBSBML_DUPLICATE_OBJECT_ID, OperationReturnValues_t} 485 * 486 * @copydetails doc_note_object_is_copied 487 * 488 * @see createCSGNode() 489 * @see getCSGNode(const std::string& sid) 490 * @see getCSGNode(unsigned int n) 491 * @see getNumCSGNodes() 492 * @see removeCSGNode(const std::string& sid) 493 * @see removeCSGNode(unsigned int n) 494 */ 495 int addCSGNode(const CSGNode* csgn); 496 497 498 /** 499 * Get the number of CSGNode objects in this CSGSetOperator. 500 * 501 * @return the number of CSGNode objects in this CSGSetOperator. 502 * 503 * @see addCSGNode(const CSGNode* object) 504 * @see createCSGNode() 505 * @see getCSGNode(const std::string& sid) 506 * @see getCSGNode(unsigned int n) 507 * @see removeCSGNode(const std::string& sid) 508 * @see removeCSGNode(unsigned int n) 509 */ 510 unsigned int getNumCSGNodes() const; 511 512 513 /** 514 * Creates a new CSGPrimitive object, adds it to this CSGSetOperator object 515 * and returns the CSGPrimitive object created. 516 * 517 * @return a new CSGPrimitive object instance. 518 * 519 * @copydetails doc_returned_unowned_pointer 520 * 521 * @see addCSGNode(const CSGNode* object) 522 * @see getCSGNode(const std::string& sid) 523 * @see getCSGNode(unsigned int n) 524 * @see getNumCSGNodes() 525 * @see removeCSGNode(const std::string& sid) 526 * @see removeCSGNode(unsigned int n) 527 */ 528 CSGPrimitive* createCSGPrimitive(); 529 530 531 /** 532 * Creates a new CSGTranslation object, adds it to this CSGSetOperator object 533 * and returns the CSGTranslation object created. 534 * 535 * @return a new CSGTranslation object instance. 536 * 537 * @copydetails doc_returned_unowned_pointer 538 * 539 * @see addCSGNode(const CSGNode* object) 540 * @see getCSGNode(const std::string& sid) 541 * @see getCSGNode(unsigned int n) 542 * @see getNumCSGNodes() 543 * @see removeCSGNode(const std::string& sid) 544 * @see removeCSGNode(unsigned int n) 545 */ 546 CSGTranslation* createCSGTranslation(); 547 548 549 /** 550 * Creates a new CSGRotation object, adds it to this CSGSetOperator object 551 * and returns the CSGRotation object created. 552 * 553 * @return a new CSGRotation object instance. 554 * 555 * @copydetails doc_returned_unowned_pointer 556 * 557 * @see addCSGNode(const CSGNode* object) 558 * @see getCSGNode(const std::string& sid) 559 * @see getCSGNode(unsigned int n) 560 * @see getNumCSGNodes() 561 * @see removeCSGNode(const std::string& sid) 562 * @see removeCSGNode(unsigned int n) 563 */ 564 CSGRotation* createCSGRotation(); 565 566 567 /** 568 * Creates a new CSGScale object, adds it to this CSGSetOperator object and 569 * returns the CSGScale object created. 570 * 571 * @return a new CSGScale object instance. 572 * 573 * @copydetails doc_returned_unowned_pointer 574 * 575 * @see addCSGNode(const CSGNode* object) 576 * @see getCSGNode(const std::string& sid) 577 * @see getCSGNode(unsigned int n) 578 * @see getNumCSGNodes() 579 * @see removeCSGNode(const std::string& sid) 580 * @see removeCSGNode(unsigned int n) 581 */ 582 CSGScale* createCSGScale(); 583 584 585 /** 586 * Creates a new CSGHomogeneousTransformation object, adds it to this 587 * CSGSetOperator object and returns the CSGHomogeneousTransformation object 588 * created. 589 * 590 * @return a new CSGHomogeneousTransformation object instance. 591 * 592 * @copydetails doc_returned_unowned_pointer 593 * 594 * @see addCSGNode(const CSGNode* object) 595 * @see getCSGNode(const std::string& sid) 596 * @see getCSGNode(unsigned int n) 597 * @see getNumCSGNodes() 598 * @see removeCSGNode(const std::string& sid) 599 * @see removeCSGNode(unsigned int n) 600 */ 601 CSGHomogeneousTransformation* createCSGHomogeneousTransformation(); 602 603 604 /** 605 * Creates a new CSGSetOperator object, adds it to this CSGSetOperator object 606 * and returns the CSGSetOperator object created. 607 * 608 * @return a new CSGSetOperator object instance. 609 * 610 * @copydetails doc_returned_unowned_pointer 611 * 612 * @see addCSGNode(const CSGNode* object) 613 * @see getCSGNode(const std::string& sid) 614 * @see getCSGNode(unsigned int n) 615 * @see getNumCSGNodes() 616 * @see removeCSGNode(const std::string& sid) 617 * @see removeCSGNode(unsigned int n) 618 */ 619 CSGSetOperator* createCSGSetOperator(); 620 621 622 /** 623 * Removes the nth CSGNode from this CSGSetOperator and returns a pointer to 624 * it. 625 * 626 * @param n an unsigned int representing the index of the CSGNode to remove. 627 * 628 * @return a pointer to the nth CSGNode in this CSGSetOperator. 629 * 630 * @copydetails doc_warning_returns_owned_pointer 631 * 632 * @see addCSGNode(const CSGNode* object) 633 * @see createCSGNode() 634 * @see getCSGNode(const std::string& sid) 635 * @see getCSGNode(unsigned int n) 636 * @see getNumCSGNodes() 637 * @see removeCSGNode(const std::string& sid) 638 */ 639 CSGNode* removeCSGNode(unsigned int n); 640 641 642 /** 643 * Removes the CSGNode from this CSGSetOperator based on its identifier and 644 * returns a pointer to it. 645 * 646 * @param sid a string representing the identifier of the CSGNode to remove. 647 * 648 * @return the CSGNode in this CSGSetOperator based on the identifier or NULL 649 * if no such CSGNode exists. 650 * 651 * @copydetails doc_warning_returns_owned_pointer 652 * 653 * @see addCSGNode(const CSGNode* object) 654 * @see createCSGNode() 655 * @see getCSGNode(const std::string& sid) 656 * @see getCSGNode(unsigned int n) 657 * @see getNumCSGNodes() 658 * @see removeCSGNode(unsigned int n) 659 */ 660 CSGNode* removeCSGNode(const std::string& sid); 661 662 663 /** 664 * @copydoc doc_renamesidref_common 665 */ 666 virtual void renameSIdRefs(const std::string& oldid, 667 const std::string& newid); 668 669 670 /** 671 * Returns the XML element name of this CSGSetOperator object. 672 * 673 * For CSGSetOperator, the XML element name is always @c "csgSetOperator". 674 * 675 * @return the name of this element, i.e. @c "csgSetOperator". 676 */ 677 virtual const std::string& getElementName() const; 678 679 680 /** 681 * Returns the libSBML type code for this CSGSetOperator object. 682 * 683 * @copydetails doc_what_are_typecodes 684 * 685 * @return the SBML type code for this object: 686 * @sbmlconstant{SBML_SPATIAL_CSGSETOPERATOR, SBMLSpatialTypeCode_t}. 687 * 688 * @copydetails doc_warning_typecodes_not_unique 689 * 690 * @see getElementName() 691 * @see getPackageName() 692 */ 693 virtual int getTypeCode() const; 694 695 696 /** 697 * Predicate returning @c true if all the required attributes for this 698 * CSGSetOperator object have been set. 699 * 700 * @return @c true to indicate that all the required attributes of this 701 * CSGSetOperator have been set, otherwise @c false is returned. 702 * 703 * 704 * @note The required attributes for the CSGSetOperator object are: 705 * @li "operationType" 706 */ 707 virtual bool hasRequiredAttributes() const; 708 709 710 /** 711 * Predicate returning @c true if all the required elements for this 712 * CSGSetOperator object have been set. 713 * 714 * @return @c true to indicate that all the required elements of this 715 * CSGSetOperator have been set, otherwise @c false is returned. 716 * 717 * 718 * @note The required elements for the CSGSetOperator object are: 719 */ 720 virtual bool hasRequiredElements() const; 721 722 723 724 /** @cond doxygenLibsbmlInternal */ 725 726 /** 727 * Write any contained elements 728 */ 729 virtual void writeElements(XMLOutputStream& stream) const; 730 731 /** @endcond */ 732 733 734 735 /** @cond doxygenLibsbmlInternal */ 736 737 /** 738 * Accepts the given SBMLVisitor 739 */ 740 virtual bool accept(SBMLVisitor& v) const; 741 742 /** @endcond */ 743 744 745 746 /** @cond doxygenLibsbmlInternal */ 747 748 /** 749 * Sets the parent SBMLDocument 750 */ 751 virtual void setSBMLDocument(SBMLDocument* d); 752 753 /** @endcond */ 754 755 756 757 /** @cond doxygenLibsbmlInternal */ 758 759 /** 760 * Connects to child elements 761 */ 762 virtual void connectToChild(); 763 764 /** @endcond */ 765 766 767 768 /** @cond doxygenLibsbmlInternal */ 769 770 /** 771 * Enables/disables the given package with this element 772 */ 773 virtual void enablePackageInternal(const std::string& pkgURI, 774 const std::string& pkgPrefix, 775 bool flag); 776 777 /** @endcond */ 778 779 780 781 /** @cond doxygenLibsbmlInternal */ 782 783 /** 784 * Updates the namespaces when setLevelVersion is used 785 */ 786 virtual void updateSBMLNamespace(const std::string& package, 787 unsigned int level, 788 unsigned int version); 789 790 /** @endcond */ 791 792 793 794 795 #ifndef SWIG 796 797 798 799 /** @cond doxygenLibsbmlInternal */ 800 801 /** 802 * Gets the value of the "attributeName" attribute of this CSGSetOperator. 803 * 804 * @param attributeName, the name of the attribute to retrieve. 805 * 806 * @param value, the address of the value to record. 807 * 808 * @copydetails doc_returns_success_code 809 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 810 * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t} 811 */ 812 virtual int getAttribute(const std::string& attributeName, bool& value) 813 const; 814 815 /** @endcond */ 816 817 818 819 /** @cond doxygenLibsbmlInternal */ 820 821 /** 822 * Gets the value of the "attributeName" attribute of this CSGSetOperator. 823 * 824 * @param attributeName, the name of the attribute to retrieve. 825 * 826 * @param value, the address of the value to record. 827 * 828 * @copydetails doc_returns_success_code 829 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 830 * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t} 831 */ 832 virtual int getAttribute(const std::string& attributeName, int& value) const; 833 834 /** @endcond */ 835 836 837 838 /** @cond doxygenLibsbmlInternal */ 839 840 /** 841 * Gets the value of the "attributeName" attribute of this CSGSetOperator. 842 * 843 * @param attributeName, the name of the attribute to retrieve. 844 * 845 * @param value, the address of the value to record. 846 * 847 * @copydetails doc_returns_success_code 848 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 849 * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t} 850 */ 851 virtual int getAttribute(const std::string& attributeName, 852 double& value) const; 853 854 /** @endcond */ 855 856 857 858 /** @cond doxygenLibsbmlInternal */ 859 860 /** 861 * Gets the value of the "attributeName" attribute of this CSGSetOperator. 862 * 863 * @param attributeName, the name of the attribute to retrieve. 864 * 865 * @param value, the address of the value to record. 866 * 867 * @copydetails doc_returns_success_code 868 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 869 * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t} 870 */ 871 virtual int getAttribute(const std::string& attributeName, 872 unsigned int& value) const; 873 874 /** @endcond */ 875 876 877 878 /** @cond doxygenLibsbmlInternal */ 879 880 /** 881 * Gets the value of the "attributeName" attribute of this CSGSetOperator. 882 * 883 * @param attributeName, the name of the attribute to retrieve. 884 * 885 * @param value, the address of the value to record. 886 * 887 * @copydetails doc_returns_success_code 888 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 889 * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t} 890 */ 891 virtual int getAttribute(const std::string& attributeName, 892 std::string& value) const; 893 894 /** @endcond */ 895 896 897 898 /** @cond doxygenLibsbmlInternal */ 899 900 /** 901 * Predicate returning @c true if this CSGSetOperator's attribute 902 * "attributeName" is set. 903 * 904 * @param attributeName, the name of the attribute to query. 905 * 906 * @return @c true if this CSGSetOperator's attribute "attributeName" has 907 * been set, otherwise @c false is returned. 908 */ 909 virtual bool isSetAttribute(const std::string& attributeName) const; 910 911 /** @endcond */ 912 913 914 915 /** @cond doxygenLibsbmlInternal */ 916 917 /** 918 * Sets the value of the "attributeName" attribute of this CSGSetOperator. 919 * 920 * @param attributeName, the name of the attribute to set. 921 * 922 * @param value, the value of the attribute to set. 923 * 924 * @copydetails doc_returns_success_code 925 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 926 * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t} 927 */ 928 virtual int setAttribute(const std::string& attributeName, bool value); 929 930 /** @endcond */ 931 932 933 934 /** @cond doxygenLibsbmlInternal */ 935 936 /** 937 * Sets the value of the "attributeName" attribute of this CSGSetOperator. 938 * 939 * @param attributeName, the name of the attribute to set. 940 * 941 * @param value, the value of the attribute to set. 942 * 943 * @copydetails doc_returns_success_code 944 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 945 * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t} 946 */ 947 virtual int setAttribute(const std::string& attributeName, int value); 948 949 /** @endcond */ 950 951 952 953 /** @cond doxygenLibsbmlInternal */ 954 955 /** 956 * Sets the value of the "attributeName" attribute of this CSGSetOperator. 957 * 958 * @param attributeName, the name of the attribute to set. 959 * 960 * @param value, the value of the attribute to set. 961 * 962 * @copydetails doc_returns_success_code 963 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 964 * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t} 965 */ 966 virtual int setAttribute(const std::string& attributeName, double value); 967 968 /** @endcond */ 969 970 971 972 /** @cond doxygenLibsbmlInternal */ 973 974 /** 975 * Sets the value of the "attributeName" attribute of this CSGSetOperator. 976 * 977 * @param attributeName, the name of the attribute to set. 978 * 979 * @param value, the value of the attribute to set. 980 * 981 * @copydetails doc_returns_success_code 982 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 983 * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t} 984 */ 985 virtual int setAttribute(const std::string& attributeName, 986 unsigned int value); 987 988 /** @endcond */ 989 990 991 992 /** @cond doxygenLibsbmlInternal */ 993 994 /** 995 * Sets the value of the "attributeName" attribute of this CSGSetOperator. 996 * 997 * @param attributeName, the name of the attribute to set. 998 * 999 * @param value, the value of the attribute to set. 1000 * 1001 * @copydetails doc_returns_success_code 1002 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 1003 * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t} 1004 */ 1005 virtual int setAttribute(const std::string& attributeName, 1006 const std::string& value); 1007 1008 /** @endcond */ 1009 1010 1011 1012 /** @cond doxygenLibsbmlInternal */ 1013 1014 /** 1015 * Unsets the value of the "attributeName" attribute of this CSGSetOperator. 1016 * 1017 * @param attributeName, the name of the attribute to query. 1018 * 1019 * @copydetails doc_returns_success_code 1020 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 1021 * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t} 1022 */ 1023 virtual int unsetAttribute(const std::string& attributeName); 1024 1025 /** @endcond */ 1026 1027 1028 1029 /** @cond doxygenLibsbmlInternal */ 1030 1031 /** 1032 * Creates and returns an new "elementName" object in this CSGSetOperator. 1033 * 1034 * @param elementName, the name of the element to create. 1035 * 1036 * @return pointer to the element created. 1037 */ 1038 virtual SBase* createChildObject(const std::string& elementName); 1039 1040 /** @endcond */ 1041 1042 1043 1044 /** @cond doxygenLibsbmlInternal */ 1045 1046 /** 1047 * Adds a new "elementName" object to this CSGSetOperator. 1048 * 1049 * @param elementName, the name of the element to create. 1050 * 1051 * @param element, pointer to the element to be added. 1052 * 1053 * @copydetails doc_returns_success_code 1054 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 1055 * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t} 1056 */ 1057 virtual int addChildObject(const std::string& elementName, 1058 const SBase* element); 1059 1060 /** @endcond */ 1061 1062 1063 1064 /** @cond doxygenLibsbmlInternal */ 1065 1066 /** 1067 * Removes and returns the new "elementName" object with the given id in this 1068 * CSGSetOperator. 1069 * 1070 * @param elementName, the name of the element to remove. 1071 * 1072 * @param id, the id of the element to remove. 1073 * 1074 * @return pointer to the element removed. 1075 */ 1076 virtual SBase* removeChildObject(const std::string& elementName, 1077 const std::string& id); 1078 1079 /** @endcond */ 1080 1081 1082 1083 /** @cond doxygenLibsbmlInternal */ 1084 1085 /** 1086 * Returns the number of "elementName" in this CSGSetOperator. 1087 * 1088 * @param elementName, the name of the element to get number of. 1089 * 1090 * @return unsigned int number of elements. 1091 */ 1092 virtual unsigned int getNumObjects(const std::string& elementName); 1093 1094 /** @endcond */ 1095 1096 1097 1098 /** @cond doxygenLibsbmlInternal */ 1099 1100 /** 1101 * Returns the nth object of "objectName" in this CSGSetOperator. 1102 * 1103 * @param elementName, the name of the element to get number of. 1104 * 1105 * @param index, unsigned int the index of the object to retrieve. 1106 * 1107 * @return pointer to the object. 1108 */ 1109 virtual SBase* getObject(const std::string& elementName, unsigned int index); 1110 1111 /** @endcond */ 1112 1113 1114 1115 1116 #endif /* !SWIG */ 1117 1118 1119 /** 1120 * Returns the first child element that has the given @p id in the model-wide 1121 * SId namespace, or @c NULL if no such object is found. 1122 * 1123 * @param id a string representing the id attribute of the object to 1124 * retrieve. 1125 * 1126 * @return a pointer to the SBase element with the given @p id. If no such 1127 * object is found, this method returns @c NULL. 1128 */ 1129 virtual SBase* getElementBySId(const std::string& id); 1130 1131 1132 /** 1133 * Returns the first child element that has the given @p metaid, or @c NULL 1134 * if no such object is found. 1135 * 1136 * @param metaid a string representing the metaid attribute of the object to 1137 * retrieve. 1138 * 1139 * @return a pointer to the SBase element with the given @p metaid. If no 1140 * such object is found this method returns @c NULL. 1141 */ 1142 virtual SBase* getElementByMetaId(const std::string& metaid); 1143 1144 1145 /** 1146 * Returns a List of all child SBase objects, including those nested to an 1147 * arbitrary depth. 1148 * 1149 * @param filter an ElementFilter that may impose restrictions on the objects 1150 * to be retrieved. 1151 * 1152 * @return a List pointer of pointers to all SBase child objects with any 1153 * restriction imposed. 1154 */ 1155 virtual List* getAllElements(ElementFilter * filter = NULL); 1156 1157 1158 protected: 1159 1160 1161 /** @cond doxygenLibsbmlInternal */ 1162 1163 /** 1164 * Creates a new object from the next XMLToken on the XMLInputStream 1165 */ 1166 virtual SBase* createObject(XMLInputStream& stream); 1167 1168 /** @endcond */ 1169 1170 1171 1172 /** @cond doxygenLibsbmlInternal */ 1173 1174 /** 1175 * Adds the expected attributes for this element 1176 */ 1177 virtual void addExpectedAttributes(ExpectedAttributes& attributes); 1178 1179 /** @endcond */ 1180 1181 1182 1183 /** @cond doxygenLibsbmlInternal */ 1184 1185 /** 1186 * Reads the expected attributes into the member data variables 1187 */ 1188 virtual void readAttributes(const XMLAttributes& attributes, 1189 const ExpectedAttributes& expectedAttributes); 1190 1191 /** @endcond */ 1192 1193 1194 1195 /** @cond doxygenLibsbmlInternal */ 1196 1197 /** 1198 * Writes the attributes to the stream 1199 */ 1200 virtual void writeAttributes(XMLOutputStream& stream) const; 1201 1202 /** @endcond */ 1203 1204 1205 }; 1206 1207 1208 1209 LIBSBML_CPP_NAMESPACE_END 1210 1211 1212 1213 1214 #endif /* __cplusplus */ 1215 1216 1217 1218 1219 #ifndef SWIG 1220 1221 1222 1223 1224 LIBSBML_CPP_NAMESPACE_BEGIN 1225 1226 1227 1228 1229 BEGIN_C_DECLS 1230 1231 1232 /** 1233 * Creates a new CSGSetOperator_t using the given SBML Level, Version and 1234 * “spatial” package version. 1235 * 1236 * @param level an unsigned int, the SBML Level to assign to this 1237 * CSGSetOperator_t. 1238 * 1239 * @param version an unsigned int, the SBML Version to assign to this 1240 * CSGSetOperator_t. 1241 * 1242 * @param pkgVersion an unsigned int, the SBML Spatial Version to assign to 1243 * this CSGSetOperator_t. 1244 * 1245 * @copydetails doc_note_setting_lv_pkg 1246 * 1247 * @copydetails doc_returned_owned_pointer 1248 * 1249 * @memberof CSGSetOperator_t 1250 */ 1251 LIBSBML_EXTERN 1252 CSGSetOperator_t * 1253 CSGSetOperator_create(unsigned int level, 1254 unsigned int version, 1255 unsigned int pkgVersion); 1256 1257 1258 /** 1259 * Creates and returns a deep copy of this CSGSetOperator_t object. 1260 * 1261 * @param csgso the CSGSetOperator_t structure. 1262 * 1263 * @return a (deep) copy of this CSGSetOperator_t object. 1264 * 1265 * @copydetails doc_returned_owned_pointer 1266 * 1267 * @memberof CSGSetOperator_t 1268 */ 1269 LIBSBML_EXTERN 1270 CSGSetOperator_t* 1271 CSGSetOperator_clone(const CSGSetOperator_t* csgso); 1272 1273 1274 /** 1275 * Frees this CSGSetOperator_t object. 1276 * 1277 * @param csgso the CSGSetOperator_t structure. 1278 * 1279 * @memberof CSGSetOperator_t 1280 */ 1281 LIBSBML_EXTERN 1282 void 1283 CSGSetOperator_free(CSGSetOperator_t* csgso); 1284 1285 1286 /** 1287 * Returns the value of the "operationType" attribute of this CSGSetOperator_t. 1288 * 1289 * @param csgso the CSGSetOperator_t structure whose operationType is sought. 1290 * 1291 * @return the value of the "operationType" attribute of this CSGSetOperator_t 1292 * as a SetOperation_t. 1293 * 1294 * @copydetails doc_csgsetoperator_operationType 1295 * @if clike The value is drawn from the enumeration @ref SetOperation_t @endif 1296 * The possible values returned by this method are: 1297 * @li @sbmlconstant{SPATIAL_SETOPERATION_UNION, SetOperation_t} 1298 * @li @sbmlconstant{SPATIAL_SETOPERATION_INTERSECTION, SetOperation_t} 1299 * @li @sbmlconstant{SPATIAL_SETOPERATION_DIFFERENCE, SetOperation_t} 1300 * @li @sbmlconstant{SPATIAL_SETOPERATION_INVALID, SetOperation_t} 1301 * 1302 * @memberof CSGSetOperator_t 1303 */ 1304 LIBSBML_EXTERN 1305 SetOperation_t 1306 CSGSetOperator_getOperationType(const CSGSetOperator_t * csgso); 1307 1308 1309 /** 1310 * Returns the value of the "operationType" attribute of this CSGSetOperator_t. 1311 * 1312 * @param csgso the CSGSetOperator_t structure whose operationType is sought. 1313 * 1314 * @return the value of the "operationType" attribute of this CSGSetOperator_t 1315 * as a const char *. 1316 * 1317 * @copydetails doc_returned_unowned_char 1318 * 1319 * @copydetails doc_csgsetoperator_operationType 1320 * The possible values returned by this method are: 1321 * @li @c "union" 1322 * @li @c "intersection" 1323 * @li @c "difference" 1324 * @li @c "invalid SetOperation value" 1325 * 1326 * @memberof CSGSetOperator_t 1327 */ 1328 LIBSBML_EXTERN 1329 char * 1330 CSGSetOperator_getOperationTypeAsString(const CSGSetOperator_t * csgso); 1331 1332 1333 /** 1334 * Returns the value of the "complementA" attribute of this CSGSetOperator_t. 1335 * 1336 * @param csgso the CSGSetOperator_t structure whose complementA is sought. 1337 * 1338 * @return the value of the "complementA" attribute of this CSGSetOperator_t as 1339 * a pointer to a string. 1340 * 1341 * @copydetails doc_returned_owned_char 1342 * 1343 * @memberof CSGSetOperator_t 1344 */ 1345 LIBSBML_EXTERN 1346 char * 1347 CSGSetOperator_getComplementA(const CSGSetOperator_t * csgso); 1348 1349 1350 /** 1351 * Returns the value of the "complementB" attribute of this CSGSetOperator_t. 1352 * 1353 * @param csgso the CSGSetOperator_t structure whose complementB is sought. 1354 * 1355 * @return the value of the "complementB" attribute of this CSGSetOperator_t as 1356 * a pointer to a string. 1357 * 1358 * @copydetails doc_returned_owned_char 1359 * 1360 * @memberof CSGSetOperator_t 1361 */ 1362 LIBSBML_EXTERN 1363 char * 1364 CSGSetOperator_getComplementB(const CSGSetOperator_t * csgso); 1365 1366 1367 /** 1368 * Predicate returning @c 1 (true) if this CSGSetOperator_t's "operationType" 1369 * attribute is set. 1370 * 1371 * @param csgso the CSGSetOperator_t structure. 1372 * 1373 * @return @c 1 (true) if this CSGSetOperator_t's "operationType" attribute has 1374 * been set, otherwise @c 0 (false) is returned. 1375 * 1376 * @copydetails doc_csgsetoperator_operationType 1377 * 1378 * @memberof CSGSetOperator_t 1379 */ 1380 LIBSBML_EXTERN 1381 int 1382 CSGSetOperator_isSetOperationType(const CSGSetOperator_t * csgso); 1383 1384 1385 /** 1386 * Predicate returning @c 1 (true) if this CSGSetOperator_t's "complementA" 1387 * attribute is set. 1388 * 1389 * @param csgso the CSGSetOperator_t structure. 1390 * 1391 * @return @c 1 (true) if this CSGSetOperator_t's "complementA" attribute has 1392 * been set, otherwise @c 0 (false) is returned. 1393 * 1394 * @memberof CSGSetOperator_t 1395 */ 1396 LIBSBML_EXTERN 1397 int 1398 CSGSetOperator_isSetComplementA(const CSGSetOperator_t * csgso); 1399 1400 1401 /** 1402 * Predicate returning @c 1 (true) if this CSGSetOperator_t's "complementB" 1403 * attribute is set. 1404 * 1405 * @param csgso the CSGSetOperator_t structure. 1406 * 1407 * @return @c 1 (true) if this CSGSetOperator_t's "complementB" attribute has 1408 * been set, otherwise @c 0 (false) is returned. 1409 * 1410 * @memberof CSGSetOperator_t 1411 */ 1412 LIBSBML_EXTERN 1413 int 1414 CSGSetOperator_isSetComplementB(const CSGSetOperator_t * csgso); 1415 1416 1417 /** 1418 * Sets the value of the "operationType" attribute of this CSGSetOperator_t. 1419 * 1420 * @param csgso the CSGSetOperator_t structure. 1421 * 1422 * @param operationType SetOperation_t value of the "operationType" attribute 1423 * to be set. 1424 * 1425 * @copydetails doc_returns_success_code 1426 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 1427 * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t} 1428 * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t} 1429 * 1430 * @copydetails doc_csgsetoperator_operationType 1431 * 1432 * @memberof CSGSetOperator_t 1433 */ 1434 LIBSBML_EXTERN 1435 int 1436 CSGSetOperator_setOperationType(CSGSetOperator_t * csgso, 1437 SetOperation_t operationType); 1438 1439 1440 /** 1441 * Sets the value of the "operationType" attribute of this CSGSetOperator_t. 1442 * 1443 * @param csgso the CSGSetOperator_t structure. 1444 * 1445 * @param operationType const char * of the "operationType" attribute to be 1446 * set. 1447 * 1448 * @copydetails doc_returns_success_code 1449 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 1450 * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t} 1451 * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t} 1452 * 1453 * @copydetails doc_csgsetoperator_operationType 1454 * 1455 * @memberof CSGSetOperator_t 1456 */ 1457 LIBSBML_EXTERN 1458 int 1459 CSGSetOperator_setOperationTypeAsString(CSGSetOperator_t * csgso, 1460 const char * operationType); 1461 1462 1463 /** 1464 * Sets the value of the "complementA" attribute of this CSGSetOperator_t. 1465 * 1466 * @param csgso the CSGSetOperator_t structure. 1467 * 1468 * @param complementA const char * value of the "complementA" attribute to be 1469 * set. 1470 * 1471 * @copydetails doc_returns_success_code 1472 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 1473 * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t} 1474 * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t} 1475 * 1476 * @memberof CSGSetOperator_t 1477 */ 1478 LIBSBML_EXTERN 1479 int 1480 CSGSetOperator_setComplementA(CSGSetOperator_t * csgso, 1481 const char * complementA); 1482 1483 1484 /** 1485 * Sets the value of the "complementB" attribute of this CSGSetOperator_t. 1486 * 1487 * @param csgso the CSGSetOperator_t structure. 1488 * 1489 * @param complementB const char * value of the "complementB" attribute to be 1490 * set. 1491 * 1492 * @copydetails doc_returns_success_code 1493 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 1494 * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t} 1495 * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t} 1496 * 1497 * @memberof CSGSetOperator_t 1498 */ 1499 LIBSBML_EXTERN 1500 int 1501 CSGSetOperator_setComplementB(CSGSetOperator_t * csgso, 1502 const char * complementB); 1503 1504 1505 /** 1506 * Unsets the value of the "operationType" attribute of this CSGSetOperator_t. 1507 * 1508 * @param csgso the CSGSetOperator_t structure. 1509 * 1510 * @copydetails doc_returns_success_code 1511 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 1512 * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t} 1513 * 1514 * @copydetails doc_csgsetoperator_operationType 1515 * 1516 * @memberof CSGSetOperator_t 1517 */ 1518 LIBSBML_EXTERN 1519 int 1520 CSGSetOperator_unsetOperationType(CSGSetOperator_t * csgso); 1521 1522 1523 /** 1524 * Unsets the value of the "complementA" attribute of this CSGSetOperator_t. 1525 * 1526 * @param csgso the CSGSetOperator_t structure. 1527 * 1528 * @copydetails doc_returns_success_code 1529 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 1530 * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t} 1531 * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t} 1532 * 1533 * @memberof CSGSetOperator_t 1534 */ 1535 LIBSBML_EXTERN 1536 int 1537 CSGSetOperator_unsetComplementA(CSGSetOperator_t * csgso); 1538 1539 1540 /** 1541 * Unsets the value of the "complementB" attribute of this CSGSetOperator_t. 1542 * 1543 * @param csgso the CSGSetOperator_t structure. 1544 * 1545 * @copydetails doc_returns_success_code 1546 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 1547 * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t} 1548 * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t} 1549 * 1550 * @memberof CSGSetOperator_t 1551 */ 1552 LIBSBML_EXTERN 1553 int 1554 CSGSetOperator_unsetComplementB(CSGSetOperator_t * csgso); 1555 1556 1557 /** 1558 * Returns a ListOf_t * containing CSGNode_t objects from this 1559 * CSGSetOperator_t. 1560 * 1561 * @param csgso the CSGSetOperator_t structure whose ListOfCSGNodes is sought. 1562 * 1563 * @return the ListOfCSGNodes from this CSGSetOperator_t as a ListOf_t *. 1564 * 1565 * @copydetails doc_returned_unowned_pointer 1566 * 1567 * @see CSGSetOperator_addCSGNode() 1568 * @see CSGSetOperator_createCSGNode() 1569 * @see CSGSetOperator_getCSGNodeById() 1570 * @see CSGSetOperator_getCSGNode() 1571 * @see CSGSetOperator_getNumCSGNodes() 1572 * @see CSGSetOperator_removeCSGNodeById() 1573 * @see CSGSetOperator_removeCSGNode() 1574 * 1575 * @memberof CSGSetOperator_t 1576 */ 1577 LIBSBML_EXTERN 1578 ListOf_t* 1579 CSGSetOperator_getListOfCSGNodes(CSGSetOperator_t* csgso); 1580 1581 1582 /** 1583 * Get a CSGNode_t from the CSGSetOperator_t. 1584 * 1585 * @param csgso the CSGSetOperator_t structure to search. 1586 * 1587 * @param n an unsigned int representing the index of the CSGNode_t to 1588 * retrieve. 1589 * 1590 * @return the nth CSGNode_t in the ListOfCSGNodes within this CSGSetOperator 1591 * or @c NULL if no such object exists. 1592 * 1593 * @copydetails doc_returned_unowned_pointer 1594 * 1595 * @memberof CSGSetOperator_t 1596 */ 1597 LIBSBML_EXTERN 1598 CSGNode_t* 1599 CSGSetOperator_getCSGNode(CSGSetOperator_t* csgso, unsigned int n); 1600 1601 1602 /** 1603 * Get a CSGNode_t from the CSGSetOperator_t based on its identifier. 1604 * 1605 * @param csgso the CSGSetOperator_t structure to search. 1606 * 1607 * @param sid a string representing the identifier of the CSGNode_t to 1608 * retrieve. 1609 * 1610 * @return the CSGNode_t in the ListOfCSGNodes within this CSGSetOperator with 1611 * the given @p sid or @c NULL if no such CSGNode_t exists. 1612 * 1613 * @copydetails doc_returned_unowned_pointer 1614 * 1615 * @memberof CSGSetOperator_t 1616 */ 1617 LIBSBML_EXTERN 1618 CSGNode_t* 1619 CSGSetOperator_getCSGNodeById(CSGSetOperator_t* csgso, const char *sid); 1620 1621 1622 /** 1623 * Adds a copy of the given CSGNode_t to this CSGSetOperator_t. 1624 * 1625 * @param csgso the CSGSetOperator_t structure to which the CSGNode_t should be 1626 * added. 1627 * 1628 * @param csgn the CSGNode_t object to add. 1629 * 1630 * @copydetails doc_returns_success_code 1631 * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t} 1632 * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t} 1633 * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t} 1634 * @li @sbmlconstant{LIBSBML_LEVEL_MISMATCH, OperationReturnValues_t} 1635 * @li @sbmlconstant{LIBSBML_VERSION_MISMATCH, OperationReturnValues_t} 1636 * @li @sbmlconstant{LIBSBML_PKG_VERSION_MISMATCH, OperationReturnValues_t} 1637 * @li @sbmlconstant{LIBSBML_DUPLICATE_OBJECT_ID, OperationReturnValues_t} 1638 * 1639 * @memberof CSGSetOperator_t 1640 */ 1641 LIBSBML_EXTERN 1642 int 1643 CSGSetOperator_addCSGNode(CSGSetOperator_t* csgso, const CSGNode_t* csgn); 1644 1645 1646 /** 1647 * Get the number of CSGNode_t objects in this CSGSetOperator_t. 1648 * 1649 * @param csgso the CSGSetOperator_t structure to query. 1650 * 1651 * @return the number of CSGNode_t objects in this CSGSetOperator_t. 1652 * 1653 * @memberof CSGSetOperator_t 1654 */ 1655 LIBSBML_EXTERN 1656 unsigned int 1657 CSGSetOperator_getNumCSGNodes(CSGSetOperator_t* csgso); 1658 1659 1660 /** 1661 * Creates a new CSGPrimitive_t object, adds it to this CSGSetOperator_t object 1662 * and returns the CSGPrimitive_t object created. 1663 * 1664 * @param csgso the CSGSetOperator_t structure to which the CSGPrimitive_t 1665 * should be added. 1666 * 1667 * @return a new CSGPrimitive_t object instance. 1668 * 1669 * @copydetails doc_returned_unowned_pointer 1670 * 1671 * @memberof CSGSetOperator_t 1672 */ 1673 LIBSBML_EXTERN 1674 CSGPrimitive_t* 1675 CSGSetOperator_createCSGPrimitive(CSGSetOperator_t* csgso); 1676 1677 1678 /** 1679 * Creates a new CSGTranslation_t object, adds it to this CSGSetOperator_t 1680 * object and returns the CSGTranslation_t object created. 1681 * 1682 * @param csgso the CSGSetOperator_t structure to which the CSGTranslation_t 1683 * should be added. 1684 * 1685 * @return a new CSGTranslation_t object instance. 1686 * 1687 * @copydetails doc_returned_unowned_pointer 1688 * 1689 * @memberof CSGSetOperator_t 1690 */ 1691 LIBSBML_EXTERN 1692 CSGTranslation_t* 1693 CSGSetOperator_createCSGTranslation(CSGSetOperator_t* csgso); 1694 1695 1696 /** 1697 * Creates a new CSGRotation_t object, adds it to this CSGSetOperator_t object 1698 * and returns the CSGRotation_t object created. 1699 * 1700 * @param csgso the CSGSetOperator_t structure to which the CSGRotation_t 1701 * should be added. 1702 * 1703 * @return a new CSGRotation_t object instance. 1704 * 1705 * @copydetails doc_returned_unowned_pointer 1706 * 1707 * @memberof CSGSetOperator_t 1708 */ 1709 LIBSBML_EXTERN 1710 CSGRotation_t* 1711 CSGSetOperator_createCSGRotation(CSGSetOperator_t* csgso); 1712 1713 1714 /** 1715 * Creates a new CSGScale_t object, adds it to this CSGSetOperator_t object and 1716 * returns the CSGScale_t object created. 1717 * 1718 * @param csgso the CSGSetOperator_t structure to which the CSGScale_t should 1719 * be added. 1720 * 1721 * @return a new CSGScale_t object instance. 1722 * 1723 * @copydetails doc_returned_unowned_pointer 1724 * 1725 * @memberof CSGSetOperator_t 1726 */ 1727 LIBSBML_EXTERN 1728 CSGScale_t* 1729 CSGSetOperator_createCSGScale(CSGSetOperator_t* csgso); 1730 1731 1732 /** 1733 * Creates a new CSGHomogeneousTransformation_t object, adds it to this 1734 * CSGSetOperator_t object and returns the CSGHomogeneousTransformation_t 1735 * object created. 1736 * 1737 * @param csgso the CSGSetOperator_t structure to which the 1738 * CSGHomogeneousTransformation_t should be added. 1739 * 1740 * @return a new CSGHomogeneousTransformation_t object instance. 1741 * 1742 * @copydetails doc_returned_unowned_pointer 1743 * 1744 * @memberof CSGSetOperator_t 1745 */ 1746 LIBSBML_EXTERN 1747 CSGHomogeneousTransformation_t* 1748 CSGSetOperator_createCSGHomogeneousTransformation(CSGSetOperator_t* csgso); 1749 1750 1751 /** 1752 * Creates a new CSGSetOperator_t object, adds it to this CSGSetOperator_t 1753 * object and returns the CSGSetOperator_t object created. 1754 * 1755 * @param csgso the CSGSetOperator_t structure to which the CSGSetOperator_t 1756 * should be added. 1757 * 1758 * @return a new CSGSetOperator_t object instance. 1759 * 1760 * @copydetails doc_returned_unowned_pointer 1761 * 1762 * @memberof CSGSetOperator_t 1763 */ 1764 LIBSBML_EXTERN 1765 CSGSetOperator_t* 1766 CSGSetOperator_createCSGSetOperator(CSGSetOperator_t* csgso); 1767 1768 1769 /** 1770 * Removes the nth CSGNode_t from this CSGSetOperator_t and returns a pointer 1771 * to it. 1772 * 1773 * @param csgso the CSGSetOperator_t structure to search. 1774 * 1775 * @param n an unsigned int representing the index of the CSGNode_t to remove. 1776 * 1777 * @return a pointer to the nth CSGNode_t in this CSGSetOperator_t. 1778 * 1779 * @copydetails doc_warning_returns_owned_pointer 1780 * 1781 * @memberof CSGSetOperator_t 1782 */ 1783 LIBSBML_EXTERN 1784 CSGNode_t* 1785 CSGSetOperator_removeCSGNode(CSGSetOperator_t* csgso, unsigned int n); 1786 1787 1788 /** 1789 * Removes the CSGNode_t from this CSGSetOperator_t based on its identifier and 1790 * returns a pointer to it. 1791 * 1792 * @param csgso the CSGSetOperator_t structure to search. 1793 * 1794 * @param sid a string representing the identifier of the CSGNode_t to remove. 1795 * 1796 * @return the CSGNode_t in this CSGSetOperator_t based on the identifier or 1797 * NULL if no such CSGNode_t exists. 1798 * 1799 * @copydetails doc_warning_returns_owned_pointer 1800 * 1801 * @memberof CSGSetOperator_t 1802 */ 1803 LIBSBML_EXTERN 1804 CSGNode_t* 1805 CSGSetOperator_removeCSGNodeById(CSGSetOperator_t* csgso, const char* sid); 1806 1807 1808 /** 1809 * Predicate returning @c 1 (true) if all the required attributes for this 1810 * CSGSetOperator_t object have been set. 1811 * 1812 * @param csgso the CSGSetOperator_t structure. 1813 * 1814 * @return @c 1 (true) to indicate that all the required attributes of this 1815 * CSGSetOperator_t have been set, otherwise @c 0 (false) is returned. 1816 * 1817 * 1818 * @note The required attributes for the CSGSetOperator_t object are: 1819 * @li "operationType" 1820 * 1821 * @memberof CSGSetOperator_t 1822 */ 1823 LIBSBML_EXTERN 1824 int 1825 CSGSetOperator_hasRequiredAttributes(const CSGSetOperator_t * csgso); 1826 1827 1828 /** 1829 * Predicate returning @c 1 (true) if all the required elements for this 1830 * CSGSetOperator_t object have been set. 1831 * 1832 * @param csgso the CSGSetOperator_t structure. 1833 * 1834 * @return @c 1 (true) to indicate that all the required elements of this 1835 * CSGSetOperator_t have been set, otherwise @c 0 (false) is returned. 1836 * 1837 * 1838 * @note The required elements for the CSGSetOperator_t object are: 1839 * 1840 * @memberof CSGSetOperator_t 1841 */ 1842 LIBSBML_EXTERN 1843 int 1844 CSGSetOperator_hasRequiredElements(const CSGSetOperator_t * csgso); 1845 1846 1847 1848 1849 END_C_DECLS 1850 1851 1852 1853 1854 LIBSBML_CPP_NAMESPACE_END 1855 1856 1857 1858 1859 #endif /* !SWIG */ 1860 1861 1862 1863 1864 #endif /* !CSGSetOperator_H__ */ 1865 1866 1867