1 /* segment.h
2 
3    MolScript v2.1.2
4 
5    Segment data structure and routines.
6 
7    Copyright (C) 1997-1998 Per Kraulis
8     18-Aug-1997  split out of vrml.c; generalized
9 */
10 
11 #ifndef SEGMENT_H
12 #define SEGMENT_H 1
13 
14 #include "clib/vector3.h"
15 #include "clib/colour.h"
16 
17 typedef struct {
18   vector3 p;
19   colour c;
20   boolean new;
21 } line_segment;
22 
23 extern line_segment *line_segments;
24 extern int line_segment_count;
25 
26 void line_segment_init (void);
27 line_segment *line_segment_next (void);
28 
29 typedef struct {
30   vector3 p1, p2, p3, p4;
31   vector3 n1, n2, n3, n4;
32   colour c;
33 } strand_segment;
34 
35 extern strand_segment *strand_segments;
36 extern int strand_segment_count;
37 
38 void strand_segment_init (void);
39 strand_segment *strand_segment_next (void);
40 
41 typedef struct {
42   vector3 p1, p2;
43   vector3 a, n;
44   colour c;
45 } helix_segment;
46 
47 extern helix_segment *helix_segments;
48 extern int helix_segment_count;
49 
50 void helix_segment_init (void);
51 helix_segment *helix_segment_next (void);
52 
53 typedef struct {
54   vector3 p, p1, p2, p3, p4;
55   vector3 n1, n2, n3, n4;
56   colour c;
57 } coil_segment;
58 
59 extern coil_segment *coil_segments;
60 extern int coil_segment_count;
61 
62 void coil_segment_init (void);
63 coil_segment *coil_segment_next (void);
64 
65 #endif
66