Mmg
Simplicial remeshers (mesh adaptation, isovalue discretization, lagrangian movement)
PRoctree_3d_private.h
Go to the documentation of this file.
1/* =============================================================================
2** This file is part of the mmg software package for the tetrahedral
3** mesh modification.
4** Copyright (c) Bx INP/CNRS/Inria/UBordeaux/UPMC, 2004-
5**
6** mmg is free software: you can redistribute it and/or modify it
7** under the terms of the GNU Lesser General Public License as published
8** by the Free Software Foundation, either version 3 of the License, or
9** (at your option) any later version.
10**
11** mmg is distributed in the hope that it will be useful, but WITHOUT
12** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13** FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14** License for more details.
15**
16** You should have received a copy of the GNU Lesser General Public
17** License and of the GNU General Public License along with mmg (in
18** files COPYING.LESSER and COPYING). If not, see
19** <http://www.gnu.org/licenses/>. Please read their terms carefully and
20** use this copy of the mmg distribution only if you accept them.
21** =============================================================================
22*/
23
24#ifndef PROCTREE_3D_H
25#define PROCTREE_3D_H
26
27#include "libmmgtypes.h"
28
34typedef struct MMG3D_PROctree_s
35{
37 MMG5_int* v;
38 int nbVer;
39 int depth;
41
46typedef struct
47{
48 int nv;
49 int nc;
53
58int MMG3D_isCellIncluded(double* cellCenter, double l, double* zoneCenter, double l0);
59void MMG3D_placeInListDouble(double*, double, int, int);
61int MMG3D_seekIndex (double* distList, double dist, int indexMin, int indexMax);
62int MMG3D_intersectRect(double *rectin, double *rectinout);
63int MMG3D_getListSquareRec(MMG3D_PROctree_s*,double*,double*,
64 MMG3D_PROctree_s***,double*,double*,double, int, int, int*);
66int MMG3D_addPROctreeRec(MMG5_pMesh,MMG3D_PROctree_s*,double*, const MMG5_int, int);
67int MMG3D_addPROctree(MMG5_pMesh mesh, MMG3D_PROctree* q, const MMG5_int no);
69int MMG3D_movePROctree(MMG5_pMesh, MMG3D_pPROctree,MMG5_int, double*, double*);
71void MMG3D_mergeBranches(MMG5_pMesh mesh,MMG3D_PROctree_s* q, int dim, int nv);
72int MMG3D_delPROctreeRec(MMG5_pMesh,MMG3D_PROctree_s*,double*, const MMG5_int,const int);
74void MMG3D_printArbreDepth(MMG3D_PROctree_s* q, int depth, int nv, int dim);
76void MMG3D_sizeArbreRec(MMG3D_PROctree_s* q, int nv, int dim, int*,int*);
80int64_t MMG3D_getPROctreeCoordinate(MMG3D_pPROctree q, double* ver, int dim);
81
82#endif
MMG5_pMesh * mesh
void MMG3D_sizeArbreRec(MMG3D_PROctree_s *q, int nv, int dim, int *, int *)
Definition: PRoctree_3d.c:1077
void MMG3D_placeInListDouble(double *, double, int, int)
Definition: PRoctree_3d.c:298
void MMG3D_mergeBranches(MMG5_pMesh mesh, MMG3D_PROctree_s *q, int dim, int nv)
Definition: PRoctree_3d.c:864
int MMG3D_seekIndex(double *distList, double dist, int indexMin, int indexMax)
Definition: PRoctree_3d.c:337
int MMG3D_addPROctree(MMG5_pMesh mesh, MMG3D_PROctree *q, const MMG5_int no)
MMG3D_PROctree * MMG3D_pPROctree
int * MMG3D_sizeArbre(MMG3D_PROctree *q, int dim)
void MMG3D_freePROctree(MMG5_pMesh, MMG3D_PROctree **q)
int MMG3D_intersectRect(double *rectin, double *rectinout)
Definition: PRoctree_3d.c:385
void MMG3D_placeInListPROctree(MMG3D_PROctree_s **, MMG3D_PROctree_s *, int, int)
Definition: PRoctree_3d.c:316
int MMG3D_PROctreein_iso(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, MMG5_int, double)
Definition: PRoctree_3d.c:1143
void MMG3D_initPROctree_s(MMG3D_PROctree_s *q)
Definition: PRoctree_3d.c:48
void MMG3D_printArbreDepth(MMG3D_PROctree_s *q, int depth, int nv, int dim)
Definition: PRoctree_3d.c:1005
int MMG3D_PROctreein_ani(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, MMG5_int, double)
Definition: PRoctree_3d.c:1225
int MMG3D_delPROctreeVertex(MMG5_pMesh, MMG3D_PROctree_s *q, MMG5_int no)
Definition: PRoctree_3d.c:800
int MMG3D_initPROctree(MMG5_pMesh, MMG3D_pPROctree *q, int nv)
Definition: PRoctree_3d.c:65
int MMG3D_isCellIncluded(double *cellCenter, double l, double *zoneCenter, double l0)
Definition: PRoctree_3d.c:265
int MMG3D_addPROctreeRec(MMG5_pMesh, MMG3D_PROctree_s *, double *, const MMG5_int, int)
Definition: PRoctree_3d.c:650
void MMG3D_mergeBranchesRec(MMG3D_PROctree_s *, MMG3D_PROctree_s *, int, int, int *)
Definition: PRoctree_3d.c:835
int MMG3D_getListSquareRec(MMG3D_PROctree_s *, double *, double *, MMG3D_PROctree_s ***, double *, double *, double, int, int, int *)
Definition: PRoctree_3d.c:443
int MMG3D_movePROctree(MMG5_pMesh, MMG3D_pPROctree, MMG5_int, double *, double *)
Definition: PRoctree_3d.c:225
int64_t MMG3D_getPROctreeCoordinate(MMG3D_pPROctree q, double *ver, int dim)
Definition: PRoctree_3d.c:183
int MMG3D_delPROctreeRec(MMG5_pMesh, MMG3D_PROctree_s *, double *, const MMG5_int, const int)
Definition: PRoctree_3d.c:896
int MMG3D_delPROctree(MMG5_pMesh mesh, MMG3D_pPROctree q, const int no)
Definition: PRoctree_3d.c:977
int MMG3D_getListSquare(MMG5_pMesh, double *, MMG3D_PROctree *, double *, MMG3D_PROctree_s ***)
void MMG3D_freePROctree_s(MMG5_pMesh, MMG3D_PROctree_s *q, int nv)
Definition: PRoctree_3d.c:113
void MMG3D_printArbre(MMG3D_PROctree *q)
struct MMG3D_PROctree_s * branches
MMG3D_PROctree_s * q0
MMG mesh structure.
Definition: libmmgtypes.h:605