/* DESTRUCTOR */
NXMoleculeSet::~NXMoleculeSet() {
	if(deleteInDestructor) {
		OBMolIterator molIter;
		for(molIter = moleculesBegin(); molIter != moleculesEnd(); ++molIter)
			delete *molIter;
		
		NXMoleculeSetIterator molSetIter;
		for(molSetIter = childrenBegin(); molSetIter != childrenEnd(); ++molSetIter)
			delete *molSetIter;
	}
}
Esempio n. 2
0
void DtdPossibleContent::toStream( std::ostream& stream, int indentation )
{
	//le parcours ici est assez simple
	CALL_MACRO;
	
	if(this->_type == T_ELEM){//si c'est un element, ne pas le faire précéder
                            //par une parenthese
		stream<<this->_value;
		stream<<DtdPossibleContent::ToStr(this->_multiplicity);	

		
	}else{	//si c'est un choix ou une séquence, ajouter une parenthèse
		stream<<"(";
		//afficher le premier fils
		PossibleContentList::iterator  it = this->firstChild();
		(*it)->toStream(stream);
		
		//parcourir le reste et afficher le bon type de séparateur "|" ou ","
		if(_type == T_CHOICE){
			for(it++; it != childrenEnd(); it++)
			{
				stream<<"|";
				(*it)->toStream(stream);
			}	
		}else{
			for(it++; it != childrenEnd(); it++)
			{
				stream<<",";
				(*it)->toStream(stream);
			}	
		}
				
		//ajouter la parenthese fermante
		stream<<")";
		//ajouter la multiplicité
		stream<<ToStr(this->_multiplicity);
		
	}
	
	
}
bool NXMoleculeSet::empty(void)
{
    if(molecules.empty()) {
        list<NXMoleculeSet*>::const_iterator childrenIter;
        for(childrenIter = childrenBegin();
            childrenIter != childrenEnd();
            ++childrenIter)
        {
            NXMoleculeSet *const childMolSetPtr = *childrenIter;
            if(!childMolSetPtr->empty()) return false;
        }
        return true; // children are also empty
    }
    else return false;
}
Esempio n. 4
0
CImagePtr
CSVGFeComponentTransfer::
filterImage(CImagePtr src_image)
{
  CImagePtr dst_image = src_image->dup();

  ObjectList::const_iterator p1, p2;

  for (p1 = childrenBegin(), p2 = childrenEnd(); p1 != p2; ++p1) {
    CSVGFeFunc *func = dynamic_cast<CSVGFeFunc *>(*p1);

    if (func)
      dst_image = func->filterImage(dst_image);
  }

  return dst_image;
}
Esempio n. 5
0
CImagePtr
CSVGFilter::
filterImage(CImagePtr image)
{
  svg_.setBufferImage("SourceGraphic", image);

  ObjectList::const_iterator p1, p2;

  for (p1 = childrenBegin(), p2 = childrenEnd(); p1 != p2; ++p1) {
    CSVGFilter *filter = dynamic_cast<CSVGFilter *>(*p1);

    if (filter)
      filter->draw();
  }

  image = svg_.getBufferImage("SourceGraphic");

  return image;
}
Esempio n. 6
0
void ProfileNode::sort(bool comparator(const RefPtr<ProfileNode>& , const RefPtr<ProfileNode>& ))
{
    std::sort(childrenBegin(), childrenEnd(), comparator);    
    resetChildrensSiblings();
}