File: casson.h

package info (click to toggle)
regina-normal 4.93-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 28,576 kB
  • sloc: cpp: 86,815; ansic: 13,030; xml: 9,089; perl: 951; sh: 380; python: 273; makefile: 103
file content (56 lines) | stat: -rw-r--r-- 1,406 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/**
 * This is the file casson.h.  It was initially written by Damien Heard
 * as part of the program Orb (http://www.ms.unimelb.edu.au/~snap/orb.html).
 *
 * This header was introduced into Regina for the Orb / Casson import
 * and export routines, which were contributed by Ryan Budney.  It is
 * for internal use by these routines only; any other code should call
 * the public routines from orb.h.
 *
 * Many thanks to Damien Heard for giving permission for his code to
 * be distributed under the terms of the GNU General Public License.
 */

#ifndef CASSON_H
#define CASSON_H

#include "regina-core.h"

#define LN(ch)   (ch=='u') ? 0 : ((ch=='v') ? 1 : ((ch=='w') ? 2 : 3))

const int vertex_at_faces[4][4] =
        {{9,2,3,1},
         {3,9,0,2},
         {1,3,9,0},
         {2,0,1,9}};

typedef struct CassonFormat CassonFormat;
typedef struct EdgeInfo EdgeInfo;
typedef struct TetEdgeInfo TetEdgeInfo;

struct REGINA_LOCAL CassonFormat
{
        int             num_tet;
        EdgeInfo        *head;
};

struct REGINA_LOCAL EdgeInfo
{
        int             index,
                        singular_index;
        double          singular_order;

        TetEdgeInfo     *head;
        EdgeInfo        *prev,
                        *next;
};

struct REGINA_LOCAL TetEdgeInfo
{
        int             tet_index,f1,f2;
        TetEdgeInfo     *prev,
                        *next;
};


#endif