Skip to content
Snippets Groups Projects
Commit f10ec9dd authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

- allocate less memory during the initial alloc of the view lists (to
reduce the amount of memory used when loading many views with only a
few element types--about 150Mb for 4000 views)

- better accuracy when creating points with the mouse
parent 9340d400
No related branches found
No related tags found
No related merge requests found
// $Id: Views.cpp,v 1.171 2005-03-26 04:09:15 geuzaine Exp $
// $Id: Views.cpp,v 1.172 2005-04-05 05:56:48 geuzaine Exp $
//
// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
//
......@@ -110,7 +110,7 @@ Post_View *BeginView(int allocate)
if(allocate) {
v->DataSize = sizeof(double);
#define LCD List_Create(100, 1000, sizeof(double))
#define LCD List_Create(1, 1000, sizeof(double))
v->Time = LCD;
v->SP = LCD; v->VP = LCD; v->TP = LCD;
v->SL = LCD; v->VL = LCD; v->TL = LCD; v->SL2 = LCD; v->VL2 = LCD; v->TL2 = LCD;
......@@ -122,10 +122,10 @@ Post_View *BeginView(int allocate)
v->SY = LCD; v->VY = LCD; v->TY = LCD; v->SY2 = LCD; v->VY2 = LCD; v->TY2 = LCD;
#undef LCD
v->T2D = List_Create(10, 100, sizeof(double));
v->T2C = List_Create(100, 1000, sizeof(char));
v->T3D = List_Create(10, 100, sizeof(double));
v->T3C = List_Create(100, 1000, sizeof(char));
v->T2D = List_Create(1, 100, sizeof(double));
v->T2C = List_Create(1, 100, sizeof(char));
v->T3D = List_Create(1, 100, sizeof(double));
v->T3C = List_Create(1, 100, sizeof(char));
}
else {
v->Time = NULL;
......@@ -905,12 +905,12 @@ void ReadView(FILE *file, char *filename)
v->DataSize = size;
// Time values
v->Time = List_CreateFromFile(v->NbTimeStep, 10, size, file, format, swap);
v->Time = List_CreateFromFile(v->NbTimeStep, 100, size, file, format, swap);
// Note: if nb==0, we still allocates the lists (so that they
// are ready to be filled later, e.g. in plugins)
#define LCD List_CreateFromFile(nb, 100, size, file, format, swap)
#define LCD List_CreateFromFile(nb, 1000, size, file, format, swap)
// Points
nb = v->NbSP ? v->NbSP * (v->NbTimeStep * 1 + 3) : 0; v->SP = LCD;
......@@ -991,19 +991,19 @@ void ReadView(FILE *file, char *filename)
// 2D strings
nb = v->NbT2 ? v->NbT2 * 4 : 0;
v->T2D = List_CreateFromFile(nb, 10, size, file, format, swap);
v->T2D = List_CreateFromFile(nb, 100, size, file, format, swap);
if(version <= 1.2)
v->T2C = List_CreateFromFileOld(t2l, 10, sizeof(char), file, format, swap);
v->T2C = List_CreateFromFileOld(t2l, 100, sizeof(char), file, format, swap);
else
v->T2C = List_CreateFromFile(t2l, 10, sizeof(char), file, format, swap);
v->T2C = List_CreateFromFile(t2l, 100, sizeof(char), file, format, swap);
// 3D strings
nb = v->NbT3 ? v->NbT3 * 5 : 0;
v->T3D = List_CreateFromFile(nb, 10, size, file, format, swap);
v->T3D = List_CreateFromFile(nb, 100, size, file, format, swap);
if(version <= 1.2)
v->T3C = List_CreateFromFileOld(t3l, 10, sizeof(char), file, format, swap);
v->T3C = List_CreateFromFileOld(t3l, 100, sizeof(char), file, format, swap);
else
v->T3C = List_CreateFromFile(t3l, 10, sizeof(char), file, format, swap);
v->T3C = List_CreateFromFile(t3l, 100, sizeof(char), file, format, swap);
Msg(DEBUG,
"Read View '%s' (%d TimeSteps): "
......
// $Id: List.cpp,v 1.34 2005-01-01 19:35:27 geuzaine Exp $
// $Id: List.cpp,v 1.35 2005-04-05 05:56:48 geuzaine Exp $
//
// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
//
......@@ -428,7 +428,7 @@ List_T *List_CreateFromFile(int n, int incr, int size, FILE * file, int format,
List_T *liste;
if(!n){
liste = List_Create(incr, incr, size);
liste = List_Create(1, incr, size);
return liste;
}
......@@ -508,7 +508,7 @@ List_T *List_CreateFromFileOld(int n, int incr, int size, FILE * file, int forma
List_T *liste;
if(!n){
liste = List_Create(incr, incr, size);
liste = List_Create(1, incr, size);
return liste;
}
......
// $Id: Opengl_Window.cpp,v 1.47 2005-03-11 08:56:38 geuzaine Exp $
// $Id: Opengl_Window.cpp,v 1.48 2005-04-05 05:56:48 geuzaine Exp $
//
// Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
//
......@@ -292,14 +292,14 @@ int Opengl_Window::handle(int event)
return 1;
case FL_MOVE:
xmov = Fl::event_x() - xpos;
ymov = Fl::event_y() - ypos;
xpos = Fl::event_x();
ypos = Fl::event_y();
if(AddPointMode && !Fl::event_state(FL_SHIFT)){
WID->g_opengl_window->cursor(FL_CURSOR_CROSS, FL_BLACK, FL_WHITE);
// find line in real space corresponding to current cursor position
double p[3],d[3];
unproject(Fl::event_x(), Fl::event_y(), p, d);
unproject(xpos, ypos, p, d);
// fin closest point to the center of gravity
double r[3] = {CTX.cg[0]-p[0], CTX.cg[1]-p[1], CTX.cg[2]-p[2]};
double t;
......@@ -313,14 +313,13 @@ int Opengl_Window::handle(int event)
sprintf(str, "%g", sol[2]);
WID->context_geometry_input[4]->value(str);
}
if(ZoomClick) {
else if(ZoomClick) {
ZoomMode = true;
redraw();
}
else {
WID->make_opengl_current();
Process_SelectionBuffer(Fl::event_x(), Fl::event_y(), &hits, ii, jj);
Process_SelectionBuffer(xpos, ypos, &hits, ii, jj);
ov = v;
oc = c;
os = s;
......@@ -336,9 +335,6 @@ int Opengl_Window::handle(int event)
HighlightEntity(v, c, s, 0);
}
}
xpos += xmov;
ypos += ymov;
return 1;
default:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment