/***********************************************************************
*
* 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_inputFront.h
Language: C++
Date: 01.10.98
Version: 1.00
Author(s): Martti Verho
Revisions:
Abstract: Elmer model file (.emf files) reader
************************************************************************/
#ifndef _ECIF_INPUT_FRONT
#define _ECIF_INPUT_FRONT
#include "front_egfdefs.h"
#include "ecif_def.h"
#include "ecif_def_stl.h"
#include "ecif_input.h"
struct emf_ObjectData_X;
class InputFront : public Input
{
public:
InputFront(enum ecif_modelDimension m_dim, ifstream& infile, char* filename);
static bool geometryIsChecked() { return isChecked;}
protected:
static bool addElementComponent(ecif_Element_X& tx, ecif_geometryType gtype);
static bool addFunctionComponentData( ecif_DllArg& da ,ecif_ElementComponent_X& tx);
static ecif_geometryType getElementGeometryType(const char* type, ecif_Element_X& tx);
virtual bool readCadHeader() {return true;} // Header for the cad geometry file
static int readBody(emf_ObjectData_X* object_data);
static bool readColor(emf_ObjectData_X* object_data, Color4 color);
static int readEdge(emf_ObjectData_X* object_data);
static int readElementGeometry1D(emf_ObjectData_X* object_data, ecif_ElementComponent_X& tx);
static int readElementGeometry2D(emf_ObjectData_X* object_data, ecif_ElementComponent_X& tx);
static int readElementGeometry3D(emf_ObjectData_X* object_data, ecif_ElementComponent_X& tx);
static int readElementGroup(emf_ObjectData_X* object_data);
static int readElementLoop(emf_ObjectData_X* object_data);
static int readFace(emf_ObjectData_X* object_data);
static int readIncludeFile(emf_ObjectData_X* object_data);
static bool readName(emf_ObjectData_X* od, char*& name);
static int readVertex(emf_ObjectData_X* object_data);
static int readVertexTable(emf_ObjectData_X* object_data);
static bool storeMatcData(MatcValueTable& matcTable, const char* key, emf_ObjectData_X* od);
static int unknownFieldMsg(emf_ObjectData_X* object_data, bool is_fatal = true);
static int unknownObjectMsg(emf_ObjectData_X* object_data, bool is_fatal = true);
static void readNumericVector(int read_count, int*& target_vector, int init_count = 0, int init_value = 0);
static void readNumericVector(int read_count, double*& target_vector, int init_count = 0, double init_value = 0.0);
static void readPoint3(int read_count, Point3& point, double init_value = 0.0);
static double inputUnit; // Input geometry scale: 1.0 <-> meters, 0.001 <--> mm etc.
static bool isChecked;
static bool isEgfInput;
static bool isEmfInput;
};
#endif
syntax highlighted by Code2HTML, v. 0.9.1