// class : Document
-// Copyright (C) 2009-2013 CEA/DEN, EDF R&D
+// Copyright (C) 2009-2020 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 "Hex_defines.hxx"
#include "HexEltBase.hxx"
+#include <algorithm>
+
#ifdef WIN32
#ifdef max
#undef max
class NewShape;
-class HEXABLOCKENGINE_EXPORT Document : public EltBase
+class HexaExport Document : public EltBase
{
// Fonctions utilisateur
public :
Elements* disconnectVertex (Hexa* maille, Vertex* noeud);
Elements* disconnectEdges (Hexas thexas, Edges edges);
- Elements* replace (Quads pattern, Vertex* p1, Vertex* c1,
- Vertex* p2, Vertex* c2, Vertex* p3, Vertex* c3);
+ Elements* replace (Quads pattern, Quads cible, Vertex* p1, Vertex* c1,
+ Vertex* p2, Vertex* c2);
int mergeVertices (Vertex* v1, Vertex* v2);
int mergeEdges (Edge* e1, Edge* e2, Vertex* v1, Vertex* v2);
Group* getGroup (int nro);
Law* getLaw (int nro);
Propagation* getPropagation (int nro);
+ cpchar getFirstExplicitShape();
// ----------------- find
Vertex* findVertex (double vx, double vy, double vz);
void clearAssoEdges ();
void clearAssoQuads ();
+ // PERIMES
+ Elements* replaceHexa (Quads pattern, Vertex* p1, Vertex* c1, Vertex* p2,
+ Vertex* c2, Vertex* p3, Vertex* c3);
+ Elements* replace (Quads pattern, Vertex* p1, Vertex* c1, Vertex* p2,
+ Vertex* c2, Vertex* p3, Vertex* c3)
+ { return replaceHexa (pattern, p1, c1, p2, c2, p3, c3); }
+
+ Elements* replaceHexas (Quads pattern, Quads cible, Vertex* p1, Vertex* c1,
+ Vertex* p2, Vertex* c2, Vertex* p3, Vertex* c3)
+ { return replace (pattern, cible, p1, c1, p2, c2); }
+
+
public:
~Document ();
void reorderQuads ();
// --------------------------------------------------- Evols Hexa5
- cpchar getNextName (EnumElt type, string& name);
- string getNextName (EnumElt type);
+ cpchar getNextName (EnumElt type, std::string& name);
+ std::string getNextName (EnumElt type);
virtual char* makeVarName (char* name);
void lockDump();