// genDElement - An abstract data element library
// Copyright (C) 2013-2026 Eric Bechet, Frederic Duboeuf
//
// See the LICENSE file for license information.
// Please report all bugs and problems to <bechet@cadxfem.org> or <duboeuf@outlook.com>.
//
// Initial design: Frederic Duboeuf (rev.1501)


#ifndef _GEN_DATA_BUILDER_H_
#define _GEN_DATA_BUILDER_H_


class MElement;

template<class Data> Data* buildData(MElement* e, const char* s);
template<class Data,class Iterator> void buildData(Iterator itbegin, Iterator itend);
template<class Data,class GModel> void buildData(GModel* m);


// DataConnectivity interface
// Warning : make a distinction between sub-elements and the standard elements
// Ex: use "SubConnectivity" for the connectivity of sub-elements
void buildDataConnectivity(MElement* e);
void buildDataConnectivity();

// DataEntity interface
void buildDataEntity();


// DataConnectivity interface
// Warning : make a distinction between sub-elements and the standard elements
// Ex: use "SubConnectivity" for the connectivity of sub-elements
void buildDataParentSupport(MElement* e);
void buildDataParentSupport();

#include "genDataBuilder.hpp"

#endif // _GEN_DATA_BUILDER_H_