-// Copyright (C) 2007-2012 CEA/DEN, EDF R&D
+// Copyright (C) 2007-2016 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
// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
#include "MEDPARTITIONER_Graph.hxx"
-MEDPARTITIONER::Graph::Graph(MEDPARTITIONER::SkyLineArray *array, int *edgeweight):_graph(array),_partition(0),_edge_weight(edgeweight),_cell_weight(0)
-{
-}
+#include "MEDCouplingSkyLineArray.hxx"
+
+#include <set>
-MEDPARTITIONER::Graph::~Graph()
+namespace MEDPARTITIONER
{
- delete _partition;
- delete _graph;
-}
+ Graph::Graph():
+ _graph(0),_partition(0),
+ _edge_weight(0),_cell_weight(0)
+ {
+ }
+
+ Graph::Graph(MEDCoupling::MEDCouplingSkyLineArray *array, int *edgeweight):
+ _graph(array),_partition(0),
+ _edge_weight(edgeweight),_cell_weight(0)
+ {
+ }
+
+ Graph::~Graph()
+ {
+ }
+
+ int Graph::nbDomains() const
+ {
+ std::set<int> domains;
+ if ( _partition.isNotNull() )
+ if ( MEDCoupling::DataArrayInt* array = _partition->getValuesArray() )
+ {
+ for ( const int * dom = array->begin(); dom != array->end(); ++dom )
+ domains.insert( *dom );
+ }
+ return domains.size();
+ }
+
+ const int *Graph::getPart() const
+ {
+ return _partition->getValues();
+ }
+
+ int Graph::nbVertices() const
+ {
+ return _graph->getNumberOf();
+ }
+
+};