00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef SELEMENTFRAGMENT_H
00014 #define SELEMENTFRAGMENT_H
00015 #include "../fem/definitions.h"
00016
00017 #include <vector>
00018 #include <utility>
00019 #include <functional>
00020 #include <iterator>
00021
00022
00023 namespace shells {
00024 struct SElementS;
00025 struct SVertexS;
00026 struct SElementFragment;
00027 struct SElementOneNeighborhood;
00028 }
00029
00030
00031
00032 namespace shells {
00033 typedef std::pair<std::back_insert_iterator<std::vector<shells::SElementS* > >,
00034 std::back_insert_iterator<std::vector<shells::SElementS* > > >
00035 SElementInserterPair;
00036 typedef std::back_insert_iterator<std::vector<shells::SVertexS*> > SVertexInserter;
00037 typedef std::pair<SElementInserterPair, SVertexInserter> InserterColl;
00038 }
00039
00040 struct shells::SElementFragment :
00041 public std::binary_function<shells::SElementS *, shells::InserterColl , void> {
00042
00043
00044
00045
00046
00047
00048 void operator()(shells::SElementS *element, shells::InserterColl inserters) const;
00049 };
00050
00051 #endif
00052