-// Copyright (C) 2015 EDF R&D
+// Copyright (C) 2015-2019 CEA/DEN, EDF R&D
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
#define __SETOFPOINTS_HXX__
#include "YACSlibEngineExport.hxx"
+#include "PlayGround.hxx"
+#include "PointVisitor.hxx"
+#include "AutoRefCnt.hxx"
+#include <map>
#include <list>
#include <string>
class Node;
class BagPoint;
class AbstractPoint;
-
+ class ComposedNode;
+
class YACSLIBENGINE_EXPORT SetOfPoints
{
public:
SetOfPoints(const std::list<Node *>& nodes);
+ SetOfPoints(BagPoint *bp):_bp(bp) { }
~SetOfPoints();
+ void basicSimplify();
void simplify();
std::string getRepr() const;
AbstractPoint *findPointWithNode(Node *node);
const std::list<AbstractPoint *>& getListOfPoints() const;
int getMaxLevelOfParallelism() const;
+ void getWeightRegardingDPL(ComplexWeight *weight);
+ void partitionRegardingDPL(const PartDefinition *pd, std::map<ComposedNode *, YACS::BASES::AutoRefCnt<PartDefinition> >& zeMap) const;
+ AbstractPoint *getUniqueAndReleaseIt() const;
+ void accept(PointVisitor *pv);
private:
BagPoint *_bp;
};