ut_tin.c File Reference


Detailed Description

faces, egdges for mesh UFA_

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

UFA_add_fac        add face to MemTab(Fac3)
UFA_chg_fac        set face
UFA_2fac_facpt     create 2 new Faces from 1 face (point on edge)
UFA_3fac_facpt     create 3 new Faces from 1 face

UFA_ifac_ck_edgu   find (1|2) faces from unoriented Edge (2 ipt's)
UFA_ifac_ck_edgo   find face from oriented Edge (2 ipt's)
UFA_nifac_ck_pt    get all faces going tru point with index ipt

UFA_esn_nxt        get EdgeSeqNr of next Edge (CCW)
UFA_esn_prv        get EdgeSeqNr of previous Edge (CCW)
UFA_esn_opp_psn    get EdgeSeqNr of Edge opposite to PointSeqNr
UFA_ipOpp_fac_esn  get point opposite to edge
UFA_ipOpp_facpt    get 3.point of fc into ipOpp. (In: 1.pt; out: 3.pt)
UFA_ipOpp_facedg   get point opposite to edge (ip3 & ptNr from ip1)
UFA_2ip_ck_ptfac   ck if ip1 is used in face; get ip2, ip3.
UFA_2ip_fac_esn    get pointNrs for Edge from face + EdgeSeqNr
UFA_2pt2_fac_esn   get 2D-points of edge of face + EdgeSeqNr

UFA_opt_diag       check common edge for optimize
UFA_opt__          test 2 common Edges
UFA_opt_saf
UFA_opt_ckCvx      check if 2 faces with common edge are convex
UFA_opt_ckOpt      Check Delaunay triangulation

UFA_esn_int_fac_ln Line goes tru Edge iei into Face fac; check intersection.

UFA_2fac_flip      flip 2 faces with common edge
UFA_esn_edg        get EdgeSequenceNumber of face from pointNr
UFA_pFac3_esn      get pointers into Face

UFA_fnb_init       create neighbourfaces for mesh
UFA_edg_find_facn  find neighbourface for edge
UFA_setinb         set neighbour

UFA_ar_fac         get (signed) area of face


UFA_BL_cke

UFA_dump1          dump face and its neighbours

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

- see also:
UT2D_ck_pt_in_tria
../ut/ut_tria.c     Triangle-functions    (using struct Point)
../ut/ut_msh.c      MSH   Funktionen fuer Meshes (MemTab)

#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 "../ut/ut_geo.h"
#include "../ut/ut_memTab.h"
#include "../ut/ut_txt.h"
#include "../ut/ut_tin.h"
#include "../gr/ut_UI.h"

Functions

 typedef_MemTab (Fac3)
 typedef_MemTab (EdgeLine)
int UFA_BL_cke (int ie1, int ie2, MemTab(EdgeLine)*eTab)
int UFA_fnb_init (Fac3 *fnb, Fac3 *fa, int fNr)
int UFA_opt__ (Fac3 *fa, Fac3 *fnb, int fNr, Point2 *p2a, MemTab(EdgeLine)*eTab, char *saf)
int UFA_opt_saf (int if1, int if2, int ip1, int ip2, int ip3, int ip4, MemTab(EdgeLine)*eTab, char *saf)
int UFA_opt_ckOpt (Point2 *p1, Point2 *p2, Point2 *p3, Point2 *p4)
int UFA_opt_ckCvx (Point2 *p1, Point2 *p2, Point2 *p3, Point2 *p4)
int UFA_2fac_flip (int if1, int esn1, int if2, int esn2, Fac3 *fa, Fac3 *fnb)
int UFA_setinb (int ifc, int ie1, int ifnb, Fac3 *fa, Fac3 *fnb)
int UFA_esn_edg (Fac3 *fac1, int ie1)
int UFA_pFac3_esn (int **ip1, int **ip2, int **ip3, Fac3 *f, int esn)
int UFA_dump1 (Fac3 *fac, Fac3 *fnb, char *txt,...)
int UFA_ipOpp_facpt (int *ipOpp, Fac3 *fc, int ip)
int UFA_ipOpp_facedg (int *ipOpp, int *esn, Fac3 *fac1, int ie)
int UFA_2ip_ck_ptfac (int *ip2, int *ip3, Fac3 *fc, int ip1)
int UFA_edg_find_facn (Fac3 *fa, int fNr, int ie1, int ie2)
int UFA_2fac_facpt (MemTab(Fac3)*fTab, int ipt, int ifc, int ie)
int UFA_3fac_facpt (MemTab(Fac3)*fTab, int ipt, int ifc)
int UFA_chg_fac (Fac3 *fa, int fNr, int i1, int i2, int i3)
int UFA_add_fac (MemTab(Fac3)*fTab, int i1, int i2, int i3)
int UFA_2ip_fac_esn (int *i1, int *i2, int ie, Fac3 *fc)
int UFA_ifac_ck_edgu (int *if1, int *ie1, int *if2, int *ie2, int ip1, int ip2, Fac3 *fa, int fNr)
int UFA_ifac_ck_edgo (int *if1, int *ie1, int ip1, int ip2, Fac3 *fa, int fNr)
int UFA_nifac_ck_pt (int *iTab, char *iEdg, int *iNr, int ipt, Fac3 *fa, int fNr)
int UFA_ar_fac (double *ar, Fac3 *fc, Point2 *pa)


Function Documentation

typedef_MemTab ( Fac3   ) 

typedef_MemTab ( EdgeLine   ) 

int UFA_BL_cke ( int  ie1,
int  ie2,
MemTab(EdgeLine)*  eTab 
)

    RetCod: 0   yes; ie1-ie2 is a BreakLine;
           -1   no;  ie1-ie2 is no BreakLine.

int UFA_fnb_init ( Fac3 fnb,
Fac3 fa,
int  fNr 
)

    Zu den Faces eine Parallelstructur fnb aufbauen,
    in denen die NachbarFacNrs gespeichert sind.
    (Fac3*)fnb: i1 ist der Index zum Nachbarface der Kante 1
       (Kante 1 geht von Punkt 1 zu Punkt 2) usw.

int UFA_opt__ ( Fac3 fa,
Fac3 fnb,
int  fNr,
Point2 p2a,
MemTab(EdgeLine)*  eTab,
char *  saf 
)

int UFA_opt_saf ( int  if1,
int  if2,
int  ip1,
int  ip2,
int  ip3,
int  ip4,
MemTab(EdgeLine)*  eTab,
char *  saf 
)

int UFA_opt_ckOpt ( Point2 p1,
Point2 p2,
Point2 p3,
Point2 p4 
)

int UFA_opt_ckCvx ( Point2 p1,
Point2 p2,
Point2 p3,
Point2 p4 
)

int UFA_2fac_flip ( int  if1,
int  esn1,
int  if2,
int  esn2,
Fac3 fa,
Fac3 fnb 
)

change diagonalLine; common Edge is p1-p2; change to p3-p4.

int UFA_setinb ( int  ifc,
int  ie1,
int  ifnb,
Fac3 fa,
Fac3 fnb 
)

set the neighbour of edge starting with point ie1 of Face ifc to ifnb

int UFA_esn_edg ( Fac3 fac1,
int  ie1 
)

get EdgeSequenceNumber of the Edge starting with point ie1

int UFA_pFac3_esn ( int **  ip1,
int **  ip2,
int **  ip3,
Fac3 f,
int  esn 
)

int UFA_dump1 ( Fac3 fac,
Fac3 fnb,
char *  txt,
  ... 
)

int UFA_ipOpp_facpt ( int *  ipOpp,
Fac3 fc,
int  ip 
)

int UFA_ipOpp_facedg ( int *  ipOpp,
int *  esn,
Fac3 fac1,
int  ie 
)

int UFA_2ip_ck_ptfac ( int *  ip2,
int *  ip3,
Fac3 fc,
int  ip1 
)

int UFA_edg_find_facn ( Fac3 fa,
int  fNr,
int  ie1,
int  ie2 
)

int UFA_2fac_facpt ( MemTab(Fac3)*  fTab,
int  ipt,
int  ifc,
int  ie 
)

int UFA_3fac_facpt ( MemTab(Fac3)*  fTab,
int  ipt,
int  ifc 
)

int UFA_chg_fac ( Fac3 fa,
int  fNr,
int  i1,
int  i2,
int  i3 
)

int UFA_add_fac ( MemTab(Fac3)*  fTab,
int  i1,
int  i2,
int  i3 
)

int UFA_2ip_fac_esn ( int *  i1,
int *  i2,
int  ie,
Fac3 fc 
)

int UFA_ifac_ck_edgu ( int *  if1,
int *  ie1,
int *  if2,
int *  ie2,
int  ip1,
int  ip2,
Fac3 fa,
int  fNr 
)

int UFA_ifac_ck_edgo ( int *  if1,
int *  ie1,
int  ip1,
int  ip2,
Fac3 fa,
int  fNr 
)

int UFA_nifac_ck_pt ( int *  iTab,
char *  iEdg,
int *  iNr,
int  ipt,
Fac3 fa,
int  fNr 
)

int UFA_ar_fac ( double *  ar,
Fac3 fc,
Point2 pa 
)


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