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

draw lines

parent d330e518
No related branches found
No related tags found
No related merge requests found
......@@ -63,15 +63,17 @@ void Draw_Vector (int Type, int Fill,
double x, double y, double z,
double d, double dx, double dy, double dz,
double Raise[3][5]);
void Draw_Mesh_Volumes(void *a, void *b);
void Draw_Mesh_Surfaces(void *a, void *b);
void Draw_Mesh_Extruded_Surfaces(void *a, void *b);
void Draw_Mesh_Curves(void *a, void *b);
void Draw_Mesh_Points(void *a, void *b);
void Draw_Simplex_Surfaces (void *a, void *b);
void Draw_Simplex_Points(void *a,void *b);
void Draw_Extruded_Surfaces(void *a, void *b);
void Draw_Simplex_Volume (void *a, void *b);
void Draw_Simplex_Surfaces (void *a, void *b);
void Draw_Simplex_Curves(void *a,void *b);
void Draw_Hexahedron_Volume (void *a, void *b);
void Draw_Prism_Volume (void *a, void *b);
......
// $Id: Mesh.cpp,v 1.38 2001-08-11 23:28:32 geuzaine Exp $
// $Id: Mesh.cpp,v 1.39 2001-08-13 11:52:56 geuzaine Exp $
#include "Gmsh.h"
#include "GmshUI.h"
......@@ -59,7 +59,6 @@ void Draw_Mesh (Mesh *M) {
InitShading();
else
InitNoShading();
InitPosition();
if(CTX.moving_light) InitRenderModel();
......@@ -123,7 +122,7 @@ void Draw_Mesh (Mesh *M) {
CTX.render_mode != GMSH_SELECT){
Tree_Action(M->Curves, Draw_Mesh_Curves);
DrawVertexSupp = 1 ;
Tree_Action(M->VertexEdges,Draw_Mesh_Points);
Tree_Action(M->VertexEdges, Draw_Mesh_Points);
}
/* fall-through! */
case 0 :
......@@ -131,7 +130,7 @@ void Draw_Mesh (Mesh *M) {
(CTX.mesh.points || CTX.mesh.points_num) &&
CTX.render_mode != GMSH_SELECT){
DrawVertexSupp = 0 ;
Tree_Action(M->Vertices,Draw_Mesh_Points);
Tree_Action(M->Vertices, Draw_Mesh_Points);
}
glPointSize(4); gl2psPointSize(4);
if(!CTX.geom.shade) InitNoShading();
......@@ -171,16 +170,14 @@ void Draw_Mesh_Extruded_Surfaces(void *a, void *b){
Tree_Action((*v)->Simp_Surf, Draw_Simplex_Surfaces);
}
void Draw_Mesh_Curves (void *a, void *b){
Curve **c;
c = (Curve**)a;
if((*c)->Num < 0)return;
iColor++;
Tree_Action((*c)->Simplexes,Draw_Simplex_Points);
Tree_Action((*c)->Simplexes,Draw_Simplex_Curves);
}
void Draw_Mesh_Points (void *a, void *b){
Vertex **v;
char Num[100];
......@@ -546,31 +543,52 @@ void Draw_Simplex_Surfaces (void *a, void *b){
}
void Draw_Simplex_Points(void *a,void *b){
void Draw_Simplex_Curves(void *a,void *b){
Simplex *s;
int i;
double Xc = 0.0 , Yc = 0.0, Zc = 0.0, X[2],Y[2],Z[2] ;
char Num[100];
s = *(Simplex**)a;
glColor4ubv((GLubyte*)&CTX.color.mesh.vertex);
glBegin(GL_POINTS);
glVertex3d(s->V[1]->Pos.X, s->V[1]->Pos.Y, s->V[1]->Pos.Z);
glEnd();
Xc = 0.5 * (s->V[0]->Pos.X + s->V[1]->Pos.X);
Yc = 0.5 * (s->V[0]->Pos.Y + s->V[1]->Pos.Y);
Zc = 0.5 * (s->V[0]->Pos.Z + s->V[1]->Pos.Z);
for (i=0 ; i<2 ; i++) {
X[i] = Xc + CTX.mesh.explode * (s->V[i]->Pos.X - Xc);
Y[i] = Yc + CTX.mesh.explode * (s->V[i]->Pos.Y - Yc);
Z[i] = Zc + CTX.mesh.explode * (s->V[i]->Pos.Z - Zc);
}
if(s->VSUP){
glColor4ubv((GLubyte*)&CTX.color.mesh.vertex_supp);
if(CTX.mesh.lines){
glColor4ubv((GLubyte*)&CTX.color.mesh.line);
glBegin(GL_LINES);
glVertex3d(X[0], Y[0], Z[0]);
glVertex3d(X[1], Y[1], Z[1]);
glEnd();
}
if(CTX.mesh.points){
glColor4ubv((GLubyte*)&CTX.color.mesh.vertex);
glBegin(GL_POINTS);
glVertex3d(s->VSUP[0]->Pos.X, s->VSUP[0]->Pos.Y, s->VSUP[0]->Pos.Z);
glVertex3d(s->V[1]->Pos.X, s->V[1]->Pos.Y, s->V[1]->Pos.Z);
glEnd();
if(s->VSUP){
glColor4ubv((GLubyte*)&CTX.color.mesh.vertex_supp);
glBegin(GL_POINTS);
glVertex3d(s->VSUP[0]->Pos.X, s->VSUP[0]->Pos.Y, s->VSUP[0]->Pos.Z);
glEnd();
}
}
if(CTX.mesh.lines_num){
glColor4ubv((GLubyte*)&CTX.color.mesh.line);
sprintf(Num,"%d",s->Num);
glRasterPos3d(0.5*(s->V[0]->Pos.X+s->V[1]->Pos.X) + 3*CTX.pixel_equiv_x/CTX.s[0],
0.5*(s->V[0]->Pos.Y+s->V[1]->Pos.Y) + 3*CTX.pixel_equiv_x/CTX.s[1],
0.5*(s->V[0]->Pos.Z+s->V[1]->Pos.Z) + 3*CTX.pixel_equiv_x/CTX.s[2]);
glRasterPos3d(Xc + 3*CTX.pixel_equiv_x/CTX.s[0],
Yc + 3*CTX.pixel_equiv_x/CTX.s[1],
Zc + 3*CTX.pixel_equiv_x/CTX.s[2]);
Draw_String(Num);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment