1 /***********************************************************************/
2 /* Open Visualization Data Explorer                                    */
3 /* (C) Copyright IBM Corp. 1989,1999                                   */
4 /* ALL RIGHTS RESERVED                                                 */
5 /* This code licensed under the                                        */
6 /*    "IBM PUBLIC LICENSE - Open Visualization Data Explorer"          */
7 /***********************************************************************/
8 
9 //
10 // $Header: /src/master/dx/src/exec/libdx/trisRI2DClass.X,v 1.3 2003/07/11 05:50:48 davidt Exp $
11 //
12 
13 
14 typedef struct trisri2dinterpolator *TrisRI2DInterpolator;
15 
16 INCLUDE      fieldinterpClass.X
17 SUBCLASS    TrisRI2DInterpolator OF FieldInterpolator
18 IMPLEMENTS  PrimitiveInterpolate Delete Copy LocalizeInterpolator
19 
20 #include "binSort.h"
21 
22 TrisRI2DInterpolator _dxfNewTrisRI2DInterpolator(Field,
23 			enum interp_init, double, Matrix *);
24 int   _dxfRecognizeTrisRI2D(Field);
25 
26 typedef struct triCoord	 	 TriCoord;
27 
28 struct triCoord
29 {
30     float p, q, r;
31 };
32 
33 struct trisri2dinterpolator
34 {
35     struct fieldinterpolator	fieldInterpolator;
36 
37     Array 		pArray;
38     ArrayHandle		pHandle;
39     int			nPoints;
40 
41     Array		nArray;
42     Triangle		*neighbors;
43 
44     Array 		tArray;
45     Triangle		*triangles;
46     int			nTriangles;
47 
48     Array 		dArray;
49     ArrayHandle		dHandle;
50     int			nElements;
51 
52     /*
53      * Stuff for regular array of bins used to locate containing
54      * triangle quickly
55      */
56     Grid		grid;
57 
58     int			hint;			/* last tet interpolated */
59 };
60 
61 TrisRI2DInterpolator _dxf_NewTrisRI2DInterpolator(Field,
62 			enum interp_init, float, Matrix *,
63 			struct trisri2dinterpolator_class *);
64 
65 TrisRI2DInterpolator _dxf_CopyTrisRI2DInterpolator(TrisRI2DInterpolator,
66 			TrisRI2DInterpolator, enum _dxd_copy);
67 
68