10 Vector c; /* coordinate */
11 Vector v; /* velocity */
22 GtkWidget *deltaField;
23 GtkWidget *errorField;
26 GtkWidget *dataEnergyField;
27 GtkWidget *dataImpulseField;
28 GtkWidget *dataMomentField;
30 GtkWidget *resEnergyField;
31 GtkWidget *resImpulseField;
32 GtkWidget *resMomentField;
33 GtkWidget *resDeltaField;
34 GtkWidget *resTimeField;
48 GtkWidget *drawing_area;
52 GtkWidget *buttonPause;
78 pthread_mutex_t mutex;
88 #define XG_TIME_TICK (20)
90 extern XGlalaxyStruct XGalaxy;
94 void addEntry(Star *star);
95 void deleteEntry(u_int32_t i);
96 void editEntry(u_int32_t i, int col, double val);
99 void galaxy_set_title();
101 gboolean show_resCList( GtkWidget *w, GdkEventExpose *event, gpointer data );
102 void clearData( GtkWidget *w, gpointer data );
103 void saveAsFile( GtkWidget *w, gpointer data );
104 void saveFile( GtkWidget *w, gpointer data );
105 void openFile( GtkWidget *w, gpointer data );
106 void showAbout( GtkWidget *w, gpointer data );
107 void actionRun( GtkWidget *w, gpointer data );
108 void actionPause( GtkWidget *w, gpointer data );
109 void actionStop( GtkWidget *w, gpointer data );
112 gint expose_event( GtkWidget *widget, GdkEventExpose *event );
113 gint configure_event( GtkWidget *widget, GdkEventConfigure *event );
114 void angle_changed(GtkRange *range, gpointer user_data);
120 void DrawDisk(GdkGC *gc, double CenterX, double CenterY, double Radius, double Feather, double brightness);
121 void antialiasedLine(GdkGC *gc, int x0, int y0, int x1, int y1, GdkColor *color);
122 gboolean mouse_motion_notify(GtkWidget *widget, GdkEventMotion *event);
125 void vector_vmul(Vector *res, Vector *a, Vector *b);
126 double vector_smul(Vector *a, Vector *b);
127 void vector_mul(Vector *res, Vector *a, double b);
128 void quater_vmul(Quaternion *res, Quaternion *a, Quaternion *b);
129 void quater_inverse(Quaternion *res, Quaternion *a);
130 void rotate(Vector *res, Vector *v, Quaternion *q);
131 void quater_normalize(Quaternion *q);
132 double vector_length(Vector *v);
133 void vector_normal(Vector *v);
134 void vector_add(Vector *res, Vector *a, Vector *b);
135 void vector_sub(Vector *res, Vector *a, Vector *b);
136 double quater_length(Quaternion *a);
137 void quater_to_matrix( Quaternion *q, double m[3][3] );
138 void matrix_to_quater( double m[3][3], Quaternion *q );
139 void quater_to_angles( Quaternion *q, Vector *a);