1 /**
2  * @file CSGRotation.h
3  * @brief Definition of the CSGRotation 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 CSGRotation
43  * @sbmlbrief{spatial} TODO:Definition of the CSGRotation class.
44  */
45 
46 
47 #ifndef CSGRotation_H__
48 #define CSGRotation_H__
49 
50 
51 #include <sbml/common/extern.h>
52 #include <sbml/common/sbmlfwd.h>
53 #include <sbml/packages/spatial/common/spatialfwd.h>
54 
55 
56 #ifdef __cplusplus
57 
58 
59 #include <string>
60 
61 
62 #include <sbml/packages/spatial/sbml/CSGTransformation.h>
63 #include <sbml/packages/spatial/extension/SpatialExtension.h>
64 
65 
66 LIBSBML_CPP_NAMESPACE_BEGIN
67 
68 
69 class LIBSBML_EXTERN CSGRotation : public CSGTransformation
70 {
71 protected:
72 
73   /** @cond doxygenLibsbmlInternal */
74 
75   double mRotateX;
76   bool mIsSetRotateX;
77   double mRotateY;
78   bool mIsSetRotateY;
79   double mRotateZ;
80   bool mIsSetRotateZ;
81   double mRotateAngleInRadians;
82   bool mIsSetRotateAngleInRadians;
83 
84   /** @endcond */
85 
86 public:
87 
88   /**
89    * Creates a new CSGRotation using the given SBML Level, Version and
90    * &ldquo;spatial&rdquo; package version.
91    *
92    * @param level an unsigned int, the SBML Level to assign to this
93    * CSGRotation.
94    *
95    * @param version an unsigned int, the SBML Version to assign to this
96    * CSGRotation.
97    *
98    * @param pkgVersion an unsigned int, the SBML Spatial Version to assign to
99    * this CSGRotation.
100    *
101    * @copydetails doc_note_setting_lv_pkg
102    */
103   CSGRotation(unsigned int level = SpatialExtension::getDefaultLevel(),
104               unsigned int version = SpatialExtension::getDefaultVersion(),
105               unsigned int pkgVersion =
106                 SpatialExtension::getDefaultPackageVersion());
107 
108 
109   /**
110    * Creates a new CSGRotation using the given SpatialPkgNamespaces object.
111    *
112    * @copydetails doc_what_are_sbml_package_namespaces
113    *
114    * @param spatialns the SpatialPkgNamespaces object.
115    *
116    * @copydetails doc_note_setting_lv_pkg
117    */
118   CSGRotation(SpatialPkgNamespaces *spatialns);
119 
120 
121   /**
122    * Copy constructor for CSGRotation.
123    *
124    * @param orig the CSGRotation instance to copy.
125    */
126   CSGRotation(const CSGRotation& orig);
127 
128 
129   /**
130    * Assignment operator for CSGRotation.
131    *
132    * @param rhs the CSGRotation object whose values are to be used as the basis
133    * of the assignment.
134    */
135   CSGRotation& operator=(const CSGRotation& rhs);
136 
137 
138   /**
139    * Creates and returns a deep copy of this CSGRotation object.
140    *
141    * @return a (deep) copy of this CSGRotation object.
142    */
143   virtual CSGRotation* clone() const;
144 
145 
146   /**
147    * Destructor for CSGRotation.
148    */
149   virtual ~CSGRotation();
150 
151 
152   /**
153    * Returns the value of the "rotateX" attribute of this CSGRotation.
154    *
155    * @return the value of the "rotateX" attribute of this CSGRotation as a
156    * double.
157    */
158   double getRotateX() const;
159 
160 
161   /**
162    * Returns the value of the "rotateY" attribute of this CSGRotation.
163    *
164    * @return the value of the "rotateY" attribute of this CSGRotation as a
165    * double.
166    */
167   double getRotateY() const;
168 
169 
170   /**
171    * Returns the value of the "rotateZ" attribute of this CSGRotation.
172    *
173    * @return the value of the "rotateZ" attribute of this CSGRotation as a
174    * double.
175    */
176   double getRotateZ() const;
177 
178 
179   /**
180    * Returns the value of the "rotateAngleInRadians" attribute of this
181    * CSGRotation.
182    *
183    * @return the value of the "rotateAngleInRadians" attribute of this
184    * CSGRotation as a double.
185    */
186   double getRotateAngleInRadians() const;
187 
188 
189   /**
190    * Predicate returning @c true if this CSGRotation's "rotateX" attribute is
191    * set.
192    *
193    * @return @c true if this CSGRotation's "rotateX" attribute has been set,
194    * otherwise @c false is returned.
195    */
196   bool isSetRotateX() const;
197 
198 
199   /**
200    * Predicate returning @c true if this CSGRotation's "rotateY" attribute is
201    * set.
202    *
203    * @return @c true if this CSGRotation's "rotateY" attribute has been set,
204    * otherwise @c false is returned.
205    */
206   bool isSetRotateY() const;
207 
208 
209   /**
210    * Predicate returning @c true if this CSGRotation's "rotateZ" attribute is
211    * set.
212    *
213    * @return @c true if this CSGRotation's "rotateZ" attribute has been set,
214    * otherwise @c false is returned.
215    */
216   bool isSetRotateZ() const;
217 
218 
219   /**
220    * Predicate returning @c true if this CSGRotation's "rotateAngleInRadians"
221    * attribute is set.
222    *
223    * @return @c true if this CSGRotation's "rotateAngleInRadians" attribute has
224    * been set, otherwise @c false is returned.
225    */
226   bool isSetRotateAngleInRadians() const;
227 
228 
229   /**
230    * Sets the value of the "rotateX" attribute of this CSGRotation.
231    *
232    * @param rotateX double value of the "rotateX" attribute to be set.
233    *
234    * @copydetails doc_returns_success_code
235    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
236    * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE,
237    * OperationReturnValues_t}
238    */
239   int setRotateX(double rotateX);
240 
241 
242   /**
243    * Sets the value of the "rotateY" attribute of this CSGRotation.
244    *
245    * @param rotateY double value of the "rotateY" attribute to be set.
246    *
247    * @copydetails doc_returns_success_code
248    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
249    * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE,
250    * OperationReturnValues_t}
251    */
252   int setRotateY(double rotateY);
253 
254 
255   /**
256    * Sets the value of the "rotateZ" attribute of this CSGRotation.
257    *
258    * @param rotateZ double value of the "rotateZ" attribute to be set.
259    *
260    * @copydetails doc_returns_success_code
261    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
262    * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE,
263    * OperationReturnValues_t}
264    */
265   int setRotateZ(double rotateZ);
266 
267 
268   /**
269    * Sets the value of the "rotateAngleInRadians" attribute of this
270    * CSGRotation.
271    *
272    * @param rotateAngleInRadians double value of the "rotateAngleInRadians"
273    * attribute to be set.
274    *
275    * @copydetails doc_returns_success_code
276    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
277    * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE,
278    * OperationReturnValues_t}
279    */
280   int setRotateAngleInRadians(double rotateAngleInRadians);
281 
282 
283   /**
284    * Unsets the value of the "rotateX" attribute of this CSGRotation.
285    *
286    * @copydetails doc_returns_success_code
287    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
288    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
289    */
290   int unsetRotateX();
291 
292 
293   /**
294    * Unsets the value of the "rotateY" attribute of this CSGRotation.
295    *
296    * @copydetails doc_returns_success_code
297    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
298    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
299    */
300   int unsetRotateY();
301 
302 
303   /**
304    * Unsets the value of the "rotateZ" attribute of this CSGRotation.
305    *
306    * @copydetails doc_returns_success_code
307    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
308    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
309    */
310   int unsetRotateZ();
311 
312 
313   /**
314    * Unsets the value of the "rotateAngleInRadians" attribute of this
315    * CSGRotation.
316    *
317    * @copydetails doc_returns_success_code
318    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
319    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
320    */
321   int unsetRotateAngleInRadians();
322 
323 
324   /**
325    * Returns the XML element name of this CSGRotation object.
326    *
327    * For CSGRotation, the XML element name is always @c "csgRotation".
328    *
329    * @return the name of this element, i.e. @c "csgRotation".
330    */
331   virtual const std::string& getElementName() const;
332 
333 
334   /**
335    * Returns the libSBML type code for this CSGRotation object.
336    *
337    * @copydetails doc_what_are_typecodes
338    *
339    * @return the SBML type code for this object:
340    * @sbmlconstant{SBML_SPATIAL_CSGROTATION, SBMLSpatialTypeCode_t}.
341    *
342    * @copydetails doc_warning_typecodes_not_unique
343    *
344    * @see getElementName()
345    * @see getPackageName()
346    */
347   virtual int getTypeCode() const;
348 
349 
350   /**
351    * Predicate returning @c true if all the required attributes for this
352    * CSGRotation object have been set.
353    *
354    * @return @c true to indicate that all the required attributes of this
355    * CSGRotation have been set, otherwise @c false is returned.
356    *
357    *
358    * @note The required attributes for the CSGRotation object are:
359    * @li "rotateX"
360    * @li "rotateAngleInRadians"
361    */
362   virtual bool hasRequiredAttributes() const;
363 
364 
365 
366   /** @cond doxygenLibsbmlInternal */
367 
368   /**
369    * Write any contained elements
370    */
371   virtual void writeElements(XMLOutputStream& stream) const;
372 
373   /** @endcond */
374 
375 
376 
377   /** @cond doxygenLibsbmlInternal */
378 
379   /**
380    * Accepts the given SBMLVisitor
381    */
382   virtual bool accept(SBMLVisitor& v) const;
383 
384   /** @endcond */
385 
386 
387 
388   /** @cond doxygenLibsbmlInternal */
389 
390   /**
391    * Sets the parent SBMLDocument
392    */
393   virtual void setSBMLDocument(SBMLDocument* d);
394 
395   /** @endcond */
396 
397 
398 
399   /** @cond doxygenLibsbmlInternal */
400 
401   /**
402    * Enables/disables the given package with this element
403    */
404   virtual void enablePackageInternal(const std::string& pkgURI,
405                                      const std::string& pkgPrefix,
406                                      bool flag);
407 
408   /** @endcond */
409 
410 
411 
412 
413   #ifndef SWIG
414 
415 
416 
417   /** @cond doxygenLibsbmlInternal */
418 
419   /**
420    * Gets the value of the "attributeName" attribute of this CSGRotation.
421    *
422    * @param attributeName, the name of the attribute to retrieve.
423    *
424    * @param value, the address of the value to record.
425    *
426    * @copydetails doc_returns_success_code
427    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
428    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
429    */
430   virtual int getAttribute(const std::string& attributeName, bool& value)
431     const;
432 
433   /** @endcond */
434 
435 
436 
437   /** @cond doxygenLibsbmlInternal */
438 
439   /**
440    * Gets the value of the "attributeName" attribute of this CSGRotation.
441    *
442    * @param attributeName, the name of the attribute to retrieve.
443    *
444    * @param value, the address of the value to record.
445    *
446    * @copydetails doc_returns_success_code
447    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
448    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
449    */
450   virtual int getAttribute(const std::string& attributeName, int& value) const;
451 
452   /** @endcond */
453 
454 
455 
456   /** @cond doxygenLibsbmlInternal */
457 
458   /**
459    * Gets the value of the "attributeName" attribute of this CSGRotation.
460    *
461    * @param attributeName, the name of the attribute to retrieve.
462    *
463    * @param value, the address of the value to record.
464    *
465    * @copydetails doc_returns_success_code
466    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
467    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
468    */
469   virtual int getAttribute(const std::string& attributeName,
470                            double& value) const;
471 
472   /** @endcond */
473 
474 
475 
476   /** @cond doxygenLibsbmlInternal */
477 
478   /**
479    * Gets the value of the "attributeName" attribute of this CSGRotation.
480    *
481    * @param attributeName, the name of the attribute to retrieve.
482    *
483    * @param value, the address of the value to record.
484    *
485    * @copydetails doc_returns_success_code
486    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
487    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
488    */
489   virtual int getAttribute(const std::string& attributeName,
490                            unsigned int& value) const;
491 
492   /** @endcond */
493 
494 
495 
496   /** @cond doxygenLibsbmlInternal */
497 
498   /**
499    * Gets the value of the "attributeName" attribute of this CSGRotation.
500    *
501    * @param attributeName, the name of the attribute to retrieve.
502    *
503    * @param value, the address of the value to record.
504    *
505    * @copydetails doc_returns_success_code
506    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
507    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
508    */
509   virtual int getAttribute(const std::string& attributeName,
510                            std::string& value) const;
511 
512   /** @endcond */
513 
514 
515 
516   /** @cond doxygenLibsbmlInternal */
517 
518   /**
519    * Predicate returning @c true if this CSGRotation's attribute
520    * "attributeName" is set.
521    *
522    * @param attributeName, the name of the attribute to query.
523    *
524    * @return @c true if this CSGRotation's attribute "attributeName" has been
525    * set, otherwise @c false is returned.
526    */
527   virtual bool isSetAttribute(const std::string& attributeName) const;
528 
529   /** @endcond */
530 
531 
532 
533   /** @cond doxygenLibsbmlInternal */
534 
535   /**
536    * Sets the value of the "attributeName" attribute of this CSGRotation.
537    *
538    * @param attributeName, the name of the attribute to set.
539    *
540    * @param value, the value of the attribute to set.
541    *
542    * @copydetails doc_returns_success_code
543    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
544    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
545    */
546   virtual int setAttribute(const std::string& attributeName, bool value);
547 
548   /** @endcond */
549 
550 
551 
552   /** @cond doxygenLibsbmlInternal */
553 
554   /**
555    * Sets the value of the "attributeName" attribute of this CSGRotation.
556    *
557    * @param attributeName, the name of the attribute to set.
558    *
559    * @param value, the value of the attribute to set.
560    *
561    * @copydetails doc_returns_success_code
562    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
563    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
564    */
565   virtual int setAttribute(const std::string& attributeName, int value);
566 
567   /** @endcond */
568 
569 
570 
571   /** @cond doxygenLibsbmlInternal */
572 
573   /**
574    * Sets the value of the "attributeName" attribute of this CSGRotation.
575    *
576    * @param attributeName, the name of the attribute to set.
577    *
578    * @param value, the value of the attribute to set.
579    *
580    * @copydetails doc_returns_success_code
581    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
582    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
583    */
584   virtual int setAttribute(const std::string& attributeName, double value);
585 
586   /** @endcond */
587 
588 
589 
590   /** @cond doxygenLibsbmlInternal */
591 
592   /**
593    * Sets the value of the "attributeName" attribute of this CSGRotation.
594    *
595    * @param attributeName, the name of the attribute to set.
596    *
597    * @param value, the value of the attribute to set.
598    *
599    * @copydetails doc_returns_success_code
600    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
601    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
602    */
603   virtual int setAttribute(const std::string& attributeName,
604                            unsigned int value);
605 
606   /** @endcond */
607 
608 
609 
610   /** @cond doxygenLibsbmlInternal */
611 
612   /**
613    * Sets the value of the "attributeName" attribute of this CSGRotation.
614    *
615    * @param attributeName, the name of the attribute to set.
616    *
617    * @param value, the value of the attribute to set.
618    *
619    * @copydetails doc_returns_success_code
620    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
621    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
622    */
623   virtual int setAttribute(const std::string& attributeName,
624                            const std::string& value);
625 
626   /** @endcond */
627 
628 
629 
630   /** @cond doxygenLibsbmlInternal */
631 
632   /**
633    * Unsets the value of the "attributeName" attribute of this CSGRotation.
634    *
635    * @param attributeName, the name of the attribute to query.
636    *
637    * @copydetails doc_returns_success_code
638    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
639    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
640    */
641   virtual int unsetAttribute(const std::string& attributeName);
642 
643   /** @endcond */
644 
645 
646 
647 
648   #endif /* !SWIG */
649 
650 
651 protected:
652 
653 
654   /** @cond doxygenLibsbmlInternal */
655 
656   /**
657    * Creates a new object from the next XMLToken on the XMLInputStream
658    */
659   virtual SBase* createObject(XMLInputStream& stream);
660 
661   /** @endcond */
662 
663 
664 
665   /** @cond doxygenLibsbmlInternal */
666 
667   /**
668    * Adds the expected attributes for this element
669    */
670   virtual void addExpectedAttributes(ExpectedAttributes& attributes);
671 
672   /** @endcond */
673 
674 
675 
676   /** @cond doxygenLibsbmlInternal */
677 
678   /**
679    * Reads the expected attributes into the member data variables
680    */
681   virtual void readAttributes(const XMLAttributes& attributes,
682                               const ExpectedAttributes& expectedAttributes);
683 
684   /** @endcond */
685 
686 
687 
688   /** @cond doxygenLibsbmlInternal */
689 
690   /**
691    * Writes the attributes to the stream
692    */
693   virtual void writeAttributes(XMLOutputStream& stream) const;
694 
695   /** @endcond */
696 
697 
698 };
699 
700 
701 
702 LIBSBML_CPP_NAMESPACE_END
703 
704 
705 
706 
707 #endif /* __cplusplus */
708 
709 
710 
711 
712 #ifndef SWIG
713 
714 
715 
716 
717 LIBSBML_CPP_NAMESPACE_BEGIN
718 
719 
720 
721 
722 BEGIN_C_DECLS
723 
724 
725 /**
726  * Creates a new CSGRotation_t using the given SBML Level, Version and
727  * &ldquo;spatial&rdquo; package version.
728  *
729  * @param level an unsigned int, the SBML Level to assign to this
730  * CSGRotation_t.
731  *
732  * @param version an unsigned int, the SBML Version to assign to this
733  * CSGRotation_t.
734  *
735  * @param pkgVersion an unsigned int, the SBML Spatial Version to assign to
736  * this CSGRotation_t.
737  *
738  * @copydetails doc_note_setting_lv_pkg
739  *
740  * @copydetails doc_returned_owned_pointer
741  *
742  * @memberof CSGRotation_t
743  */
744 LIBSBML_EXTERN
745 CSGRotation_t *
746 CSGRotation_create(unsigned int level,
747                    unsigned int version,
748                    unsigned int pkgVersion);
749 
750 
751 /**
752  * Creates and returns a deep copy of this CSGRotation_t object.
753  *
754  * @param csgr the CSGRotation_t structure.
755  *
756  * @return a (deep) copy of this CSGRotation_t object.
757  *
758  * @copydetails doc_returned_owned_pointer
759  *
760  * @memberof CSGRotation_t
761  */
762 LIBSBML_EXTERN
763 CSGRotation_t*
764 CSGRotation_clone(const CSGRotation_t* csgr);
765 
766 
767 /**
768  * Frees this CSGRotation_t object.
769  *
770  * @param csgr the CSGRotation_t structure.
771  *
772  * @memberof CSGRotation_t
773  */
774 LIBSBML_EXTERN
775 void
776 CSGRotation_free(CSGRotation_t* csgr);
777 
778 
779 /**
780  * Returns the value of the "rotateX" attribute of this CSGRotation_t.
781  *
782  * @param csgr the CSGRotation_t structure whose rotateX is sought.
783  *
784  * @return the value of the "rotateX" attribute of this CSGRotation_t as a
785  * double.
786  *
787  * @memberof CSGRotation_t
788  */
789 LIBSBML_EXTERN
790 double
791 CSGRotation_getRotateX(const CSGRotation_t * csgr);
792 
793 
794 /**
795  * Returns the value of the "rotateY" attribute of this CSGRotation_t.
796  *
797  * @param csgr the CSGRotation_t structure whose rotateY is sought.
798  *
799  * @return the value of the "rotateY" attribute of this CSGRotation_t as a
800  * double.
801  *
802  * @memberof CSGRotation_t
803  */
804 LIBSBML_EXTERN
805 double
806 CSGRotation_getRotateY(const CSGRotation_t * csgr);
807 
808 
809 /**
810  * Returns the value of the "rotateZ" attribute of this CSGRotation_t.
811  *
812  * @param csgr the CSGRotation_t structure whose rotateZ is sought.
813  *
814  * @return the value of the "rotateZ" attribute of this CSGRotation_t as a
815  * double.
816  *
817  * @memberof CSGRotation_t
818  */
819 LIBSBML_EXTERN
820 double
821 CSGRotation_getRotateZ(const CSGRotation_t * csgr);
822 
823 
824 /**
825  * Returns the value of the "rotateAngleInRadians" attribute of this
826  * CSGRotation_t.
827  *
828  * @param csgr the CSGRotation_t structure whose rotateAngleInRadians is
829  * sought.
830  *
831  * @return the value of the "rotateAngleInRadians" attribute of this
832  * CSGRotation_t as a double.
833  *
834  * @memberof CSGRotation_t
835  */
836 LIBSBML_EXTERN
837 double
838 CSGRotation_getRotateAngleInRadians(const CSGRotation_t * csgr);
839 
840 
841 /**
842  * Predicate returning @c 1 (true) if this CSGRotation_t's "rotateX" attribute
843  * is set.
844  *
845  * @param csgr the CSGRotation_t structure.
846  *
847  * @return @c 1 (true) if this CSGRotation_t's "rotateX" attribute has been
848  * set, otherwise @c 0 (false) is returned.
849  *
850  * @memberof CSGRotation_t
851  */
852 LIBSBML_EXTERN
853 int
854 CSGRotation_isSetRotateX(const CSGRotation_t * csgr);
855 
856 
857 /**
858  * Predicate returning @c 1 (true) if this CSGRotation_t's "rotateY" attribute
859  * is set.
860  *
861  * @param csgr the CSGRotation_t structure.
862  *
863  * @return @c 1 (true) if this CSGRotation_t's "rotateY" attribute has been
864  * set, otherwise @c 0 (false) is returned.
865  *
866  * @memberof CSGRotation_t
867  */
868 LIBSBML_EXTERN
869 int
870 CSGRotation_isSetRotateY(const CSGRotation_t * csgr);
871 
872 
873 /**
874  * Predicate returning @c 1 (true) if this CSGRotation_t's "rotateZ" attribute
875  * is set.
876  *
877  * @param csgr the CSGRotation_t structure.
878  *
879  * @return @c 1 (true) if this CSGRotation_t's "rotateZ" attribute has been
880  * set, otherwise @c 0 (false) is returned.
881  *
882  * @memberof CSGRotation_t
883  */
884 LIBSBML_EXTERN
885 int
886 CSGRotation_isSetRotateZ(const CSGRotation_t * csgr);
887 
888 
889 /**
890  * Predicate returning @c 1 (true) if this CSGRotation_t's
891  * "rotateAngleInRadians" attribute is set.
892  *
893  * @param csgr the CSGRotation_t structure.
894  *
895  * @return @c 1 (true) if this CSGRotation_t's "rotateAngleInRadians" attribute
896  * has been set, otherwise @c 0 (false) is returned.
897  *
898  * @memberof CSGRotation_t
899  */
900 LIBSBML_EXTERN
901 int
902 CSGRotation_isSetRotateAngleInRadians(const CSGRotation_t * csgr);
903 
904 
905 /**
906  * Sets the value of the "rotateX" attribute of this CSGRotation_t.
907  *
908  * @param csgr the CSGRotation_t structure.
909  *
910  * @param rotateX double value of the "rotateX" attribute to be set.
911  *
912  * @copydetails doc_returns_success_code
913  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
914  * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
915  * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
916  *
917  * @memberof CSGRotation_t
918  */
919 LIBSBML_EXTERN
920 int
921 CSGRotation_setRotateX(CSGRotation_t * csgr, double rotateX);
922 
923 
924 /**
925  * Sets the value of the "rotateY" attribute of this CSGRotation_t.
926  *
927  * @param csgr the CSGRotation_t structure.
928  *
929  * @param rotateY double value of the "rotateY" attribute to be set.
930  *
931  * @copydetails doc_returns_success_code
932  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
933  * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
934  * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
935  *
936  * @memberof CSGRotation_t
937  */
938 LIBSBML_EXTERN
939 int
940 CSGRotation_setRotateY(CSGRotation_t * csgr, double rotateY);
941 
942 
943 /**
944  * Sets the value of the "rotateZ" attribute of this CSGRotation_t.
945  *
946  * @param csgr the CSGRotation_t structure.
947  *
948  * @param rotateZ double value of the "rotateZ" attribute to be set.
949  *
950  * @copydetails doc_returns_success_code
951  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
952  * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
953  * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
954  *
955  * @memberof CSGRotation_t
956  */
957 LIBSBML_EXTERN
958 int
959 CSGRotation_setRotateZ(CSGRotation_t * csgr, double rotateZ);
960 
961 
962 /**
963  * Sets the value of the "rotateAngleInRadians" attribute of this
964  * CSGRotation_t.
965  *
966  * @param csgr the CSGRotation_t structure.
967  *
968  * @param rotateAngleInRadians double value of the "rotateAngleInRadians"
969  * attribute to be set.
970  *
971  * @copydetails doc_returns_success_code
972  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
973  * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
974  * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
975  *
976  * @memberof CSGRotation_t
977  */
978 LIBSBML_EXTERN
979 int
980 CSGRotation_setRotateAngleInRadians(CSGRotation_t * csgr,
981                                     double rotateAngleInRadians);
982 
983 
984 /**
985  * Unsets the value of the "rotateX" attribute of this CSGRotation_t.
986  *
987  * @param csgr the CSGRotation_t structure.
988  *
989  * @copydetails doc_returns_success_code
990  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
991  * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
992  * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
993  *
994  * @memberof CSGRotation_t
995  */
996 LIBSBML_EXTERN
997 int
998 CSGRotation_unsetRotateX(CSGRotation_t * csgr);
999 
1000 
1001 /**
1002  * Unsets the value of the "rotateY" attribute of this CSGRotation_t.
1003  *
1004  * @param csgr the CSGRotation_t structure.
1005  *
1006  * @copydetails doc_returns_success_code
1007  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
1008  * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
1009  * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
1010  *
1011  * @memberof CSGRotation_t
1012  */
1013 LIBSBML_EXTERN
1014 int
1015 CSGRotation_unsetRotateY(CSGRotation_t * csgr);
1016 
1017 
1018 /**
1019  * Unsets the value of the "rotateZ" attribute of this CSGRotation_t.
1020  *
1021  * @param csgr the CSGRotation_t structure.
1022  *
1023  * @copydetails doc_returns_success_code
1024  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
1025  * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
1026  * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
1027  *
1028  * @memberof CSGRotation_t
1029  */
1030 LIBSBML_EXTERN
1031 int
1032 CSGRotation_unsetRotateZ(CSGRotation_t * csgr);
1033 
1034 
1035 /**
1036  * Unsets the value of the "rotateAngleInRadians" attribute of this
1037  * CSGRotation_t.
1038  *
1039  * @param csgr the CSGRotation_t structure.
1040  *
1041  * @copydetails doc_returns_success_code
1042  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
1043  * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
1044  * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
1045  *
1046  * @memberof CSGRotation_t
1047  */
1048 LIBSBML_EXTERN
1049 int
1050 CSGRotation_unsetRotateAngleInRadians(CSGRotation_t * csgr);
1051 
1052 
1053 /**
1054  * Predicate returning @c 1 (true) if all the required attributes for this
1055  * CSGRotation_t object have been set.
1056  *
1057  * @param csgr the CSGRotation_t structure.
1058  *
1059  * @return @c 1 (true) to indicate that all the required attributes of this
1060  * CSGRotation_t have been set, otherwise @c 0 (false) is returned.
1061  *
1062  *
1063  * @note The required attributes for the CSGRotation_t object are:
1064  * @li "rotateX"
1065  * @li "rotateAngleInRadians"
1066  *
1067  * @memberof CSGRotation_t
1068  */
1069 LIBSBML_EXTERN
1070 int
1071 CSGRotation_hasRequiredAttributes(const CSGRotation_t * csgr);
1072 
1073 
1074 
1075 
1076 END_C_DECLS
1077 
1078 
1079 
1080 
1081 LIBSBML_CPP_NAMESPACE_END
1082 
1083 
1084 
1085 
1086 #endif /* !SWIG */
1087 
1088 
1089 
1090 
1091 #endif /* !CSGRotation_H__ */
1092 
1093 
1094