ut_msh.c File Reference


Detailed Description

Mesh MSH_.

=====================================================
Liste_Funktionen_Beginn:

MSH_bsav_pTab              write pointTable binary > tmp/M#A#.ptab
MSH_bsav_pTabf             write pointTable binary > tmp/M#A#.ptab
MSH_bsav_fTab              write faceTable binary > tmp/M#A#.msh
MSH_bsav_fTabf             write faceTable binary > tmp/M#A#.msh
MSH_bload_pTab             load pointTable from binary file tmp/M#A#.ptab
MSH_bload_pTabf            load pointTable from binary file tmp/M#A#.ptab
MSH_bdel_pTab

MSH_bload_fTab             load faceTable from binary file tmp/M#A#.msh
MSH_bload_fTabf            load faceTable from binary file tmp/M#A#.msh
MSH_bdel_fTab              delete binary faceTableFile
MSH_asav_pTabf             save pointTable ascii into open file
MSH_asav_fTabf             save faceTable ascii into open file
MSH_aload_pTab             load pointTable ascii from open file
MSH_aload_fTab             load faceTable ascii from open file

MSH_msh1                   create Mesh from Points & boundary
MSH_ibnd_pt2n              find boundary of 2D-pTab
MSH_itess_pt2n             tesselate a 2D-boundary

MSH_ibnd_ptn               find boundary of 3D-pTab
MSH_Ftab_add               add Face to a FaceTable
MSH_ptn2_ptn3              transport all 3D-points > 2D
MSH_if_findSegP            find face with LineSegment ip1-ps2 inside.
MSH_if_find_ptmsh          find faceNr of point pt1 (2D-test point inside face)
MSH_FA_mod_delPt           change all face-pointers >= ip to ip-1

MSH_fTab_BL__              Create Edgeline from Breakline ie1-ie2.
MSH_IB_def_if              delete faces inside InnerBoundaries
MSH_eTab_fix               recover EdgeLine-pointers ia
MSH_EL_get_tab             get EdgeLineData from EdgeLineTyp.
MSH_EL_ck_ln               check if line ip1-ip2 is a Breakline
MSH_EL_del_pt              delete point from EdgeLines

MSH_npt_prjcvmsh_          project curve > Mesh
MSH_msh_pt                 add point to mesh; create 2 or 3 new faces.

MSH_ck_pt3      ERSETZEN   test for "point already exists"; 2D-test w tol

MSH_dump_fTab              dump Faces
MSH_dump_eTab              dump EdgeLines

MSH_test_disp1-5

Liste_Funktionen_Ende:
=====================================================

- see also:
../ut/ut_tin.c      UFA   Funktionen fuer Faces (Fac3)
../ut/ut_tria.c     Triangle-functions    (using struct Point)

#include "../xa/MS_Def0.h"
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include "../xa/ut_ui_TX.h"
#include "../xa/xa_mem.h"
#include "../ut/ut_geo.h"
#include "../ut/ut_txt.h"
#include "../ut/ut_umem.h"
#include "../ut/ut_memTab.h"
#include "../gr/ut_UI.h"

Functions

 typedef_MemTab (int)
 typedef_MemTab (Point)
 typedef_MemTab (Fac3)
 typedef_MemTab (EdgeLine)
int MSH_FA_mod_delPt (MemTab(Fac3)*fTab, int ip)
int MSH_aload_pTab (char *lBuf, int bufSiz, FILE *fpi)
int MSH_aload_fTab (char *lBuf, int bufSiz, FILE *fpi)
int MSH_asav_pTabf (Point *pTab, int pNr, char *fNam, FILE *fpo)
int MSH_asav_fTabf (MemTab(Fac3)*fTab, MemTab(EdgeLine)*eTab, MemTab(int)*eDat, char *fNam, FILE *fpo)
int MSH_bsav_pTab (MemTab *pTab, int mdlNr, int surNr)
int MSH_bsav_pTabf (MemTab *pTab, char *fNam)
int MSH_bsav_fTab (MemTab *fTab, MemTab *eTab, MemTab *eDat, int mdlNr, int surNr)
int MSH_bsav_fTabf (MemTab *fTab, MemTab *eTab, MemTab *eDat, char *fNam)
int MSH_bload_fTab (MemTab(Fac3)*fTab, MemTab(EdgeLine)*eTab, MemTab(int)*eDat, int mdlNr, int surNr)
int MSH_bload_fTabf (MemTab *fTab, MemTab *eTab, MemTab *eDat, char *fNam)
int MSH_bload_pTab (MemTab(Point)*pTab, int mdlNr, int surNr)
int MSH_bload_pTabf (MemTab *pTab, char *fNam)
int MSH_itess_pt2n (Fac3 *fa, int *fNr, int *iba, int ibNr, Point2 *p2a, int p2Nr, int *ipa)
int MSH_Ftab_add (Fac3 *fa, int *fNr, int fSiz, int ip1, int ip2, int ip3)
int MSH_ibnd_ptn (int *iba, int *ibNr, Point *pa, int pNr)
int MSH_ibnd_pt2n (int *iba, int *ibNr, Point2 *p2a, int p2Nr)
int MSH_ptn2_ptn3 (Point2 *p2a, int *p2Nr, Point *pa, int pNr)
int MSH_bdel_pTab (int mdlNr, int surNr)
int MSH_test_disp_p1 (Point *pTab, int pNr)
int MSH_test_disp1 (int *iba, int iNr, Point *pa, int *ipa)
int MSH_test_disp2 (int *ib, int iNr, Point *pa, int att, int mode)
int MSH_test_disp3 (int *iba, int iNr, Point2 *pa)
int MSH_test_disp4 (Fac3 *fa, int fNr, Point2 *pa)
int MSH_test_disp5 (Fac3 *fa, int fNr, Point *pa)
int MSH_bdel_fTab (int mdlNr, int surNr)
int MSH_pt_prjptmsh_ (Point *pto, Point *pti, int surMsh, int surPtab)
int MSH_pt_prjptmsh1 (Point *pto, Point *pti, Fac3 *fa, int fNr, Point *pa, int pNr)
int MSH_eTab_fix (MemTab(EdgeLine)*eTab, MemTab(int)*eDat)
int MSH_EL_get_tab (int **iTab, int *iNr, MemTab(EdgeLine)*eTab, int typ)
int MSH_dump_eTab (MemTab(EdgeLine)*eTab, MemTab(int)*eDat)

Variables

int WC_modnr
 the Nr of the active submodel; -1 = main.


Function Documentation

typedef_MemTab ( int   ) 

typedef_MemTab ( Point   ) 

typedef_MemTab ( Fac3   ) 

typedef_MemTab ( EdgeLine   ) 

int MSH_FA_mod_delPt ( MemTab(Fac3)*  fTab,
int  ip 
)

MSH_FA_mod_delPt change all face-pointers >= ip to ip-1

int MSH_aload_pTab ( char *  lBuf,
int  bufSiz,
FILE *  fpi 
)

    MSH_aload_pTab             load pointTable ascii from open file
    Input:
      all following ascii-lines from open file fpi; "SECTIONEND" = end.
    Output:
      write into binary file

int MSH_aload_fTab ( char *  lBuf,
int  bufSiz,
FILE *  fpi 
)

    MSH_aload_fTab             load faceTable ascii from open file
    cbuf = buffer with line  "SECTION MESH fNam"

int MSH_asav_pTabf ( Point pTab,
int  pNr,
char *  fNam,
FILE *  fpo 
)

MSH_asav_pTabf save pointTable ascii into open file

int MSH_asav_fTabf ( MemTab(Fac3)*  fTab,
MemTab(EdgeLine)*  eTab,
MemTab(int)*  eDat,
char *  fNam,
FILE *  fpo 
)

MSH_asav_fTabf save faceTable ascii into open file

int MSH_bsav_pTab ( MemTab *  pTab,
int  mdlNr,
int  surNr 
)

    MSH_bsav_pTab              write pointTable binary > tmp/M#A#.ptab
    write OutFile
    OutFilename: M#A#.ptab

int MSH_bsav_pTabf ( MemTab *  pTab,
char *  fNam 
)

int MSH_bsav_fTab ( MemTab *  fTab,
MemTab *  eTab,
MemTab *  eDat,
int  mdlNr,
int  surNr 
)

    MSH_bsav_fTab              write faceTable binary > tmp/M#A#.msh
    write OutFile
    OutFilename: M#A#.msh

int MSH_bsav_fTabf ( MemTab *  fTab,
MemTab *  eTab,
MemTab *  eDat,
char *  fNam 
)

int MSH_bload_fTab ( MemTab(Fac3)*  fTab,
MemTab(EdgeLine)*  eTab,
MemTab(int)*  eDat,
int  mdlNr,
int  surNr 
)

    MSH_bload_fTab             load faceTable from binary file tmp/M#A#.msh
      fTab is malloced; you must free it !

int MSH_bload_fTabf ( MemTab *  fTab,
MemTab *  eTab,
MemTab *  eDat,
char *  fNam 
)

    MSH_bload_fTab             load faceTable from binary file tmp/M#A#.msh
      fTab is malloced; you must free it !

int MSH_bload_pTab ( MemTab(Point)*  pTab,
int  mdlNr,
int  surNr 
)

    MSH_bload_pTab             load pointTable from binary file tmp/M#A#.ptab
      pTab is malloced; you must free it !

int MSH_bload_pTabf ( MemTab *  pTab,
char *  fNam 
)

    MSH_bload_pTabf            load pointTable from binary file tmp/M#A#.ptab
      pTab is malloced; you must free it !

int MSH_itess_pt2n ( Fac3 fa,
int *  fNr,
int *  iba,
int  ibNr,
Point2 p2a,
int  p2Nr,
int *  ipa 
)

    MSH_itess_pt2n                  planare Kontur tesselieren
    ACHTUNG: iba WIRD ZERSTOERT !
    Funktionsweise:
    Fuer je 2 Kanten mit SpitzWinkel die Laenge fuer Abkuerzung merken.
     - fuer gesamte Kontur.
     Die beiden Kanten mit der kuerzesten Strecke suchen:
       ein Face bilden,
       die beiden Kanten durch eine Kante ersetzen (den Konturpunkt loeschen)
    
    Input:
      fNr    size of fa
      p2a    2D-PunkteTabelle
      iba    2D-Kontur (indices in die 2D-PunkteTabelle)
      ipa    pointers into 3D-pointTable; used only for Information
    Output:
      fa     Faces (indices in die 2D-PunkteTabelle als *Fac3)
      fNr    nr of faces

int MSH_Ftab_add ( Fac3 fa,
int *  fNr,
int  fSiz,
int  ip1,
int  ip2,
int  ip3 
)

add a Face to a FaceTable

int MSH_ibnd_ptn ( int *  iba,
int *  ibNr,
Point pa,
int  pNr 
)

    MSH_ibnd_ptn          get boundary (iTab) for n points (pTab)
    ACHTUNG: memspc501 memspc201 memspc55 used !!
    Input:
      ibNr     size of iba
    Output:
      iba      memspc for the indices of the boundarypoints into pa
      ibNr     nr of indices

int MSH_ibnd_pt2n ( int *  iba,
int *  ibNr,
Point2 p2a,
int  p2Nr 
)

    MSH_ibnd_pt2n          get boundary (iTab) for n 2D-points (p2a)
    Does not provide the closing-point (last point is not equal to first point !)
    ACHTUNG:  memspc55 used !!
    Input:
      ibNr     size of iba
    Output:
      iba      memspc for the indices of the boundarypoints into p2a
      ibNr     nr of indices

int MSH_ptn2_ptn3 ( Point2 p2a,
int *  p2Nr,
Point pa,
int  pNr 
)

    transport all points > 2D (pa -> p2a);
    set indexArray ipa (points into pa)
    skip empty (deleted) points;
    skip identical points
    ACHTUNG: p2a & ipa must have size pNr !

int MSH_bdel_pTab ( int  mdlNr,
int  surNr 
)

int MSH_test_disp_p1 ( Point pTab,
int  pNr 
)

display pointNr's of Gis-Points in 2D

int MSH_test_disp1 ( int *  iba,
int  iNr,
Point pa,
int *  ipa 
)

TEST: display polygon

int MSH_test_disp2 ( int *  ib,
int  iNr,
Point pa,
int  att,
int  mode 
)

    TEST: display polygon
    mode = 0    open polygon
    mode = 1    closed polygon

int MSH_test_disp3 ( int *  iba,
int  iNr,
Point2 pa 
)

TEST: display polygon

int MSH_test_disp4 ( Fac3 fa,
int  fNr,
Point2 pa 
)

TESTDISPLAY Faces

int MSH_test_disp5 ( Fac3 fa,
int  fNr,
Point pa 
)

TESTDISPLAY Faces

int MSH_bdel_fTab ( int  mdlNr,
int  surNr 
)

MSH_bdel_fTab delete binary faceTableFile

int MSH_pt_prjptmsh_ ( Point pto,
Point pti,
int  surMsh,
int  surPtab 
)

    project point > Mesh
    
    RetCod: 0 OK;
            1 point is not inside mesh
           -1 Error in inputData
    Output:

int MSH_pt_prjptmsh1 ( Point pto,
Point pti,
Fac3 fa,
int  fNr,
Point pa,
int  pNr 
)

    project point > Mesh
    
    RetCod: 0 OK;
            1 point is not inside mesh
           -1 Error in inputData
    Output:
      pto     NULL=point outside mesh
    
    - transform points > 2D;
    - check if point is in Triangle or on its boundary
    - get Z-coord of point on 2D-Triangle

int MSH_eTab_fix ( MemTab(EdgeLine)*  eTab,
MemTab(int)*  eDat 
)

    MSH_eTab_fix      recover EdgeLine-pointers ia
    (nach relocation) die pointers neu aufbauen

int MSH_EL_get_tab ( int **  iTab,
int *  iNr,
MemTab(EdgeLine)*  eTab,
int  typ 
)

    get a pointer to the integer-list of EdgeLine with typ=<typ>
    MSH_EL_get_tab   get EdgeLineData from EdgeLineTyp.

int MSH_dump_eTab ( MemTab(EdgeLine)*  eTab,
MemTab(int)*  eDat 
)

MSH_dump_eTab dump EdgeLines


Variable Documentation

int WC_modnr

the Nr of the active submodel; -1 = main.


Generated on Sat May 30 09:31:56 2009 for gCAD3D by  doxygen 1.5.6