/*********************************************************************** * * ELMER, A Computational Fluid Dynamics Program. * * Copyright 1st April 1995 - , Center for Scientific Computing, * Finland. * * All rights reserved. No part of this program may be used, * reproduced or transmitted in any form or by any means * without the written permission of CSC. * * Address: Center for Scientific Computing * Tietotie 6, P.O. BOX 405 * 02101 Espoo, Finland * Tel. +358 0 457 2001 * Telefax: +358 0 457 2302 * EMail: Jari.Jarvinen@csc.fi ************************************************************************/ /*********************************************************************** Program: ELMER Front Module: ecif_def_stl.h Language: C++ Date: 01.10.98 Version: 1.00 Author(s): Martti Verho Revisions: Abstract: All STL-based container types are defined here. ************************************************************************/ #ifndef _ECIF_STL_ #define _ECIF_STL_ #include "ecif_def.h" // STL object comparison functions extern bool operator<(const Ids1& p1, const Ids1& p2); extern bool operator==(const Ids1& p1, const Ids1& p2); extern bool operator<(const Ids2& p1, const Ids2& p2); extern bool operator==(const Ids2& p1, const Ids2& p2); extern bool operator<(const Ids3& p1, const Ids3& p2); extern bool operator==(const Ids3& p1, const Ids3& p2); // New Standard library-stuff (VC++6.0, Latest in Unix etc) #include #include #include #include #include #include #include typedef std::basic_string stringPrkele; //*** STL datastructures with names making their purpose a bit clearer (we hope). typedef std::list BodyElementList; typedef std::list BoundaryPointList; typedef std::list EdgeList; typedef std::list IdList; typedef std::list MeshCornerElementList; typedef std::list NameList; typedef std::list ParameterList; typedef std::list PointList; typedef std::list Point3List; typedef std::list VertexList; typedef std::map > BodyElementTable; typedef std::multimap > MultiBodyElementTable; typedef std::map > BodyElementLoopTable; typedef std::map > BodyForceTable; typedef std::map > BodyTable; typedef std::map > ColorTable; typedef std::map > RGBColorTable; typedef std::map > MatcValueTable; typedef std::map > IdListTable; typedef std::map > IdNumberTable; typedef std::map > IdTable; typedef std::multimap > MultiIdNumberTable; typedef std::multimap > MultiIdTable; typedef std::map > NameTable; typedef std::map > ParameterTable; typedef std::map > PointTable; typedef std::map > Point2VertexTable; typedef std::map > ProcessTable; typedef std::map > PointHashTable; typedef std::vector IdArray; typedef std::vector ModelObjectArray; typedef std::vector BodyPairArray; typedef std::vector ColorIndexArray; typedef std::vector ParamVectorArray; typedef std::vector AdjacentPairArray; typedef std::vector SplitCombineInfoArray; typedef std::set > IdsSet; typedef std::set > Ids1Set; typedef std::set > Ids2Set; typedef std::set > Ids3Set; typedef std::set > NameSet; typedef std::stack IdsStack; typedef std::stack Ids1Stack; typedef std::stack Ids2Stack; struct IgesDirectoryEntry; typedef std::map > IgesDirectory; extern int find2(Ids2Set& id_set, int key1); extern int find3(Ids3Set& id_set, int key1, int key2); extern void purgeNameTable(NameTable& table); extern void purgeNameList(NameList& list); extern const char* getMatcString(MatcValueTable& table, const char* key); extern void storeMatcString(MatcValueTable& table, const char* key, const char* value); extern void copyMatcValueTable(MatcValueTable& source, MatcValueTable& target); extern void purgeMatcValueTable(MatcValueTable& table); void reallocate_array(int old_size, int new_size, int*& array, int default_value); void reallocate_array(int old_size, int new_size, char**& array, char* default_value); void reallocate_array(int old_size, int new_size, int**& array, int* default_value); void reallocate_array(int old_size, int new_size, BoundBox**& array); void reallocate_array(int old_size, int new_size, BodyElementTable**& array); void reallocate_array(int old_size, int new_size, IdList**& array); void reallocate_array(int old_size, int new_size, IdArray**& array); template void reallocate_array_impl1(int old_size, int new_size, T*& array, T default_value); template void reallocate_array_impl2(int old_size, int new_size, T**& array, T* default_value); template void reallocate_array_impl3(int old_size, int new_size, T**& array); #endif