9 #include <sbml/packages/render/sbml/RenderInformationBase.h>
10 #include <sbml/packages/render/sbml/ColorDefinition.h>
11 #include <sbml/packages/render/sbml/GradientBase.h>
12 #include <sbml/packages/render/sbml/LinearGradient.h>
13 #include <sbml/packages/render/sbml/RadialGradient.h>
14 #include <sbml/packages/render/sbml/LineEnding.h>
41 mReferenceRenderInformation(source.mReferenceRenderInformation),
42 mBackgroundColor(source.mBackgroundColor),
43 mListOfColorDefinitions(source.mListOfColorDefinitions, this),
44 mListOfGradientDefinitions(source.mListOfGradientDefinitions, this),
45 mListOfLineEndings(source.mListOfLineEndings, this),
55 const std::string& name,
65 mReferenceRenderInformation(source.getReferenceRenderInformationId()),
66 mBackgroundColor(source.getBackgroundColor()),
68 mName(source.getName())
70 size_t i, iMax = source.getNumColorDefinitions();
71 const ColorDefinition* pCD = NULL;
74 for (i = 0; i < iMax; ++i)
76 pCD = source.getColorDefinition((
unsigned int) i);
82 const GradientBase* pGD = NULL;
86 iMax = source.getNumGradientDefinitions();
88 for (i = 0; i < iMax; ++i)
90 pGD = source.getGradientDefinition((
unsigned int) i);
92 if (dynamic_cast<const LinearGradient*>(pGD))
97 else if (dynamic_cast<const RadialGradient*>(source.getGradientDefinition((
unsigned int) i)))
106 const LineEnding* pLE = NULL;
110 iMax = source.getNumLineEndings();
112 for (i = 0; i < iMax; ++i)
114 pLE = source.getLineEnding((
unsigned int) i);
296 if (dynamic_cast<const CLLinearGradient*>(pGradient))
300 else if (dynamic_cast<const CLRadialGradient*>(pGradient))
414 pBase->setName(
mName);
420 unsigned int level = pBase->getLevel();
421 unsigned int version = pBase->getVersion();
423 for (i = 0; i < iMax; ++i)
426 result = pBase->addColorDefinition(pCD);
427 assert(result == LIBSBML_OPERATION_SUCCESS);
433 GradientBase* pGB = NULL;
436 for (i = 0; i < iMax; ++i)
440 if (dynamic_cast<const CLRadialGradient*>(pLGB))
449 result = pBase->addGradientDefinition(pGB);
450 assert(result == LIBSBML_OPERATION_SUCCESS);
457 for (i = 0; i < iMax; ++i)
460 LineEnding* pLE = lineEnding->
toSBML(level, version);
461 result = pBase->addLineEnding(pLE);
462 assert(result == LIBSBML_OPERATION_SUCCESS);
bool remove(const std::string &key)
virtual size_t size() const
virtual bool add(const CType &src)
LineEnding * toSBML(unsigned int level, unsigned int version) const
virtual void remove(const size_t &index)
static CKeyFactory * getKeyFactory()
ColorDefinition * toSBML(unsigned int level, unsigned int version) const