📄 ibgd0.h
字号:
/* last edit: Ilja Schmelzer -------------- 17-OCT-1994 13:46:10.37 */
/************************************************************************/
/* */
/* <<< I B G >>> - Intersection - Based Grid generation package */
/* */
/* Version 1.1 by Ilja Schmelzer schmelzer@iaas-berlin.d400.de */
/* */
/* to be distributed under IBG license conditions (see "readme.ibg") */
/* */
/************************************************************************/
#ifndef IBGD0_H
#define IBGD0_H
#ifndef IBGI_H
#include "ibgi.h"
#endif
#ifndef IBGT_H
#include "ibgt.h"
#endif
typedef struct _ibGeometryClass ibGeometryClassRec,*ibGeometryClass;
struct _ibGeometry{
/* pointer to function table */
ibGeometryClass Class;
/* counter of the existent copies of the pointer: */
int copy;
/* required accuracy of boundary computation: */
ibgFloat Delta;
/* parameters controlling the default implementations: */
/* default segment number handling: (ibgiStatus...) */
ibgTopologyRec top;
/* break of possibly infinite cycle in LineWithRectangle: */
int LoopBreakRectangle;
/* break of possibly infinite cycle in NodeInHexahedron: */
int LoopBreakHexahedron;
};
typedef int (*ibgdFunctionRegionOfPoint)(ibGeometry g, ibgPoint *nnew, const ibgPoint *nold);
typedef int (*ibgdFunctionFaceWithEdge)(ibGeometry g, ibgPoint *point,
const ibgPoint *n1, const ibgPoint *n2);
typedef int (*ibgdFunctionLineWithTriangle)(ibGeometry g,
ibgPoint *point, const ibgPoint *nface,
const ibgPoint *n1, const ibgPoint *n2, const ibgPoint *n3);
typedef int (*ibgdFunctionNodeInTetrahedron)(ibGeometry g,
ibgPoint *point, const ibgPoint *nline,
const ibgPoint *n1, const ibgPoint *n2, const ibgPoint *n3, const ibgPoint *n4);
struct _ibGeometryClass{
ibgdFunctionRegionOfPoint RegionOfPoint;
ibgdFunctionFaceWithEdge FaceWithEdge;
ibgdFunctionLineWithTriangle LineWithTriangle;
ibgdFunctionNodeInTetrahedron NodeInTetrahedron;
int (*LineWithRectangle)(ibGeometry g,
ibgPoint *point, const ibgPoint *nline,
const ibgPoint *n1, const ibgPoint *n2, const ibgPoint *n3, const ibgPoint *n4);
int (*NodeInHexahedron)(ibGeometry g,
ibgPoint *point, const ibgPoint *nline,
const ibgPoint *n1, const ibgPoint *n2, const ibgPoint *n3, const ibgPoint *n4,
const ibgPoint *n5, const ibgPoint *n6, const ibgPoint *n7, const ibgPoint *n8);
int (*StatusOfEdge)(ibGeometry g,
const ibgPoint *n1, const ibgPoint *n2);
int (*StatusOfTriangle)(ibGeometry g,
const ibgPoint *n1, const ibgPoint *n2, const ibgPoint *n3);
int (*StatusOfTetrahedron)(ibGeometry g,
const ibgPoint *n1, const ibgPoint *n2, const ibgPoint *n3, const ibgPoint *n4);
int (*Free) (ibGeometry g);
};
void ibgdInitialize(ibGeometry geom, ibGeometryClass Class);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -