summaryrefslogtreecommitdiffstats
path: root/src/model/exp004state.h (plain)
blob: 669e4cb43724d8c38f86782398558da0a211a0bc
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#ifndef EXP004STATE_H
#define EXP004STATE_H

#include <stdbool.h>

/*
 * Buffer object identifiers.
 */
#define BASE_VERTICES 0
#define BASE_COLORS 1

/*
 * Vertices in the graph.
 */
#define ROWS 83905

#define DEFAULT_COLOR_R 0.2
#define DEFAULT_COLOR_G 0.2
#define DEFAULT_COLOR_B 0.2

#define SELECT_COLOR_R 1.0
#define SELECT_COLOR_G 1.0
#define SELECT_COLOR_B 1.0

/*
 * Maintain state of the model.
 */
typedef struct
{

  /*
   * Track the bounding box of the points.
   */
  struct {
    float min_x;
    float max_x;
    float min_y;
    float max_y;
  } bb;

  /*
   * Minimum coordinate for the orthographic projection.
   */
  float ortho_min;

  /*
   * Maximum coordinate for the orthographic projection.
   */
  float ortho_max;

  /*
   * Orthographic coordinates after aspect preserving scaling.
   */
  struct {
    float min_x;
    float max_x;
    float min_y;
    float max_y;
  } ortho;

  /*
   * Viewport size.
   */
  struct {
    int w;
    int h;
  } viewport;

  /*
   * Buffer objects.
   */
  unsigned int buffers[1];

  /*
   * GI Identifiers indexed by row.
   */
  char gi_data[ROWS][20];

  /*
   * 2D coordinates for each protein.
   */
  float base_vertices_data[ROWS][2];

  /*
   * RGB color for each protein.
   */
  float base_colors_data[ROWS][3];

  /*
   * Selection list.
   */
  bool selection[ROWS];

  /*
   * Indicate if the user is currently defining a selection.
   */
  bool selecting;

  /*
   * X coordinate of mouse when selection mode initiated.
   */
  int select_x;

  /*
   * Y coordinate of mouse when selection mode initiated.
   */
  int select_y;

} EXP004STATE;

#endif // EXP004STATE_H

Valid XHTML 1.0 Strict

Copyright © 2009 Don Pellegrino All Rights Reserved.