/***********************************************************************
*
* 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_bodyLayer.h
Language: C++
Date: 01.01.03
Version: 1.00
Author(s): Martti Verho
Revisions:
Abstract: A Base class for model's bodiesLayer.
BodyLayer are subparts of a body and they are
used in meshing only
************************************************************************/
#ifndef _ECIF_BODYLAYER_
#define _ECIF_BODYLAYER_
#include "ecif_def.h"
#include "ecif_def_stl.h"
#include "ecif_def_trx.h"
#include "ecif_modelObject.h"
class BodyLayer : public ModelObject
{
friend class Control;
friend class Model;
public:
BodyLayer();
BodyLayer(ecif_BodyLayer_X& trx_bl);
virtual ~BodyLayer();
bool acceptsStructuredMesh();
const Body* getBody();
const int getBodyId() { return bodyId; }
const int getBodyTag() { return bodyTag; }
void getColor(Color4& clr);
const int* getExcludedMeshIndices() { return excludedMeshIndices; }
const int* getGridParameterMeshIndices() { return gridParameterMeshIndices; }
int getGridParameterId(int mesh_index);
const int* getGridParameterIds() { return gridParameterIds; }
bool getMeshDensityValue(int mesh_index, char& type, double& value);
int getMeshQuadGridN(int mesh_index, int element_id);
int getNofExcludedMeshes() { return nofExcludedMeshes; }
int getNofGridParameterIds() { return nofGridParameterIds; }
int getNofMifLayers(const IdList* elem_loop_ids);
int getNofMifLayerLoops(const IdList* elem_loop_ids);
int getNofMifLayerLoops(int gmtr_index, const IdList* elem_loop_ids);
enum bodyLayerType getLayerType() const {return type;}
bool hasBody(int bd_id);
void initName();
static void initClass(Model* model);
bool isExcludedFromMesh(int mesh_index);
virtual bool isClosed() { return tplgType == CLOSED_LAYER; }
virtual bool isOpen() { return tplgType == OPEN_LAYER; }
virtual ostream& output_emf(ostream& out, short indent_size, short indent_level);
virtual ostream& output_mif(ostream& out, int& next_mif_id, const IdList* elem_loop_ids);
void setBodyId(int body_id);
void setBodyTag(int body_tag);
void setColorIndex(colorIndices color_index);
void setExcludedMeshData(int nof_ids, int* excluded_mesh_indices);
void setGridParameterData(int nof_ids, int* gids, int* mesh_indices);
void setGridParameterIds(int nof_ids, int* gids);
void setGridParameterMeshIndices(int nof_ids, int* mesh_indices);
void setLayerType(enum bodyLayerType tp) {type = tp;}
void setTplgType(bodyLayerTplgType value) { tplgType = value; };
protected:
void init();
static int last_tag;
int bodyId;
int bodyTag;
Color4 color;
colorIndices colorIndex;
int* excludedMeshIndices;
int* gridParameterMeshIndices;
int* gridParameterIds;
int nofExcludedMeshes;
int nofGridParameterIds;
enum bodyLayerType type;
enum bodyLayerTplgType tplgType;
};
#endif
syntax highlighted by Code2HTML, v. 0.9.1