Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
gmsh
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Terraform modules
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Romin Tomasetti
gmsh
Commits
caa6f2ed
Commit
caa6f2ed
authored
8 years ago
by
Christophe Geuzaine
Browse files
Options
Downloads
Patches
Plain Diff
draw axes on mobile
parent
f4d4dc1c
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
Graphics/drawContext.cpp
+1
-1
1 addition, 1 deletion
Graphics/drawContext.cpp
contrib/mobile/drawContext.cpp
+306
-14
306 additions, 14 deletions
contrib/mobile/drawContext.cpp
contrib/mobile/drawContext.h
+9
-0
9 additions, 0 deletions
contrib/mobile/drawContext.h
with
316 additions
and
15 deletions
Graphics/drawContext.cpp
+
1
−
1
View file @
caa6f2ed
...
@@ -295,11 +295,11 @@ void drawContext::draw3d()
...
@@ -295,11 +295,11 @@ void drawContext::draw3d()
initRenderModel
();
initRenderModel
();
if
(
!
CTX
::
instance
()
->
camera
)
initPosition
();
if
(
!
CTX
::
instance
()
->
camera
)
initPosition
();
drawAxes
();
drawGeom
();
drawGeom
();
drawBackgroundImage
(
true
);
drawBackgroundImage
(
true
);
drawMesh
();
drawMesh
();
drawPost
();
drawPost
();
drawAxes
();
drawGraph2d
(
true
);
drawGraph2d
(
true
);
}
}
...
...
This diff is collapsed.
Click to expand it.
contrib/mobile/drawContext.cpp
+
306
−
14
View file @
caa6f2ed
...
@@ -42,6 +42,7 @@ drawContext::drawContext(float fontFactor, bool retina)
...
@@ -42,6 +42,7 @@ drawContext::drawContext(float fontFactor, bool retina)
setQuaternion
(
0.
,
0.
,
0.
,
1.
);
setQuaternion
(
0.
,
0.
,
0.
,
1.
);
_fontFactor
=
fontFactor
;
_fontFactor
=
fontFactor
;
_retina
=
retina
;
_retina
=
retina
;
_pixel_equiv_x
=
_pixel_equiv_y
=
0.
;
}
}
static
void
checkGlError
(
const
char
*
op
)
static
void
checkGlError
(
const
char
*
op
)
...
@@ -195,6 +196,10 @@ void drawContext::OrthofFromGModel()
...
@@ -195,6 +196,10 @@ void drawContext::OrthofFromGModel()
vymin
-=
yborder
;
vymin
-=
yborder
;
vymax
+=
yborder
;
vymax
+=
yborder
;
// store what one pixel represents in world coordinates
_pixel_equiv_x
=
(
vxmax
-
vxmin
)
/
(
double
)
_width
;
_pixel_equiv_y
=
(
vymax
-
vymin
)
/
(
double
)
_height
;
// set up the near and far clipping planes so that the box is large enough to
// set up the near and far clipping planes so that the box is large enough to
// manipulate the model and zoom, but not too big (otherwise the z-buffer
// manipulate the model and zoom, but not too big (otherwise the z-buffer
// resolution e.g. with Mesa can become insufficient)
// resolution e.g. with Mesa can become insufficient)
...
@@ -236,9 +241,10 @@ void drawContext::initView(int w, int h)
...
@@ -236,9 +241,10 @@ void drawContext::initView(int w, int h)
void
drawArray
(
VertexArray
*
va
,
GLint
type
,
bool
useColorArray
,
bool
useNormalArray
)
void
drawArray
(
VertexArray
*
va
,
GLint
type
,
bool
useColorArray
,
bool
useNormalArray
)
{
{
if
(
!
va
)
return
;
if
(
!
va
)
return
;
glEnable
(
GL_BLEND
);
glEnable
(
GL_RESCALE_NORMAL
);
glEnable
(
GL_RESCALE_NORMAL
);
glShadeModel
(
GL_SMOOTH
);
glBlendFunc
(
GL_SRC_ALPHA
,
GL_ONE_MINUS_SRC_ALPHA
);
glEnable
(
GL_BLEND
);
glShadeModel
(
GL_SMOOTH
);
glVertexPointer
(
3
,
GL_FLOAT
,
0
,
va
->
getVertexArray
());
glVertexPointer
(
3
,
GL_FLOAT
,
0
,
va
->
getVertexArray
());
glEnableClientState
(
GL_VERTEX_ARRAY
);
glEnableClientState
(
GL_VERTEX_ARRAY
);
if
(
useNormalArray
){
if
(
useNormalArray
){
...
@@ -253,8 +259,8 @@ void drawArray(VertexArray *va, GLint type, bool useColorArray, bool useNormalAr
...
@@ -253,8 +259,8 @@ void drawArray(VertexArray *va, GLint type, bool useColorArray, bool useNormalAr
glDisableClientState
(
GL_VERTEX_ARRAY
);
glDisableClientState
(
GL_VERTEX_ARRAY
);
glDisableClientState
(
GL_NORMAL_ARRAY
);
glDisableClientState
(
GL_NORMAL_ARRAY
);
glDisableClientState
(
GL_COLOR_ARRAY
);
glDisableClientState
(
GL_COLOR_ARRAY
);
glDisable
(
GL_
RESCALE_NORMAL
);
glDisable
(
GL_
BLEND
);
glDisable
(
GL_
BLEND
);
glDisable
(
GL_
RESCALE_NORMAL
);
}
}
void
drawVector
(
double
x
,
double
y
,
double
z
,
double
dx
,
double
dy
,
double
dz
)
void
drawVector
(
double
x
,
double
y
,
double
z
,
double
dx
,
double
dy
,
double
dz
)
...
@@ -539,9 +545,11 @@ void drawContext::drawScale()
...
@@ -539,9 +545,11 @@ void drawContext::drawScale()
break
;
break
;
}
}
drawString
lbl
(
label
,
20
*
_fontFactor
);
if
(
strlen
(
label
)){
lbl
.
draw
(
xmin
+
width
/
2
,
ymin
+
2.8
*
dh
,
0.
,
drawString
lbl
(
label
,
20
*
_fontFactor
);
_width
/
(
_right
-
_left
),
_height
/
(
_top
-
_bottom
));
lbl
.
draw
(
xmin
+
width
/
2
,
ymin
+
2.8
*
dh
,
0.
,
_width
/
(
_right
-
_left
),
_height
/
(
_top
-
_bottom
));
}
drawString
val
(
data
->
getName
().
c_str
(),
15
*
_fontFactor
);
drawString
val
(
data
->
getName
().
c_str
(),
15
*
_fontFactor
);
for
(
int
i
=
0
;
i
<
3
;
i
++
)
{
for
(
int
i
=
0
;
i
<
3
;
i
++
)
{
...
@@ -567,6 +575,289 @@ void drawContext::drawPost()
...
@@ -567,6 +575,289 @@ void drawContext::drawPost()
}
}
void
drawContext
::
drawAxes
()
void
drawContext
::
drawAxes
()
{
glLineWidth
(
1.
);
bool
geometryExists
=
false
;
for
(
unsigned
int
i
=
0
;
i
<
GModel
::
list
.
size
();
i
++
){
if
(
!
GModel
::
list
[
i
]
->
empty
()){
geometryExists
=
true
;
break
;
}
}
if
(
!
CTX
::
instance
()
->
axesAutoPosition
){
drawAxes
(
CTX
::
instance
()
->
axes
,
CTX
::
instance
()
->
axesTics
,
CTX
::
instance
()
->
axesFormat
,
CTX
::
instance
()
->
axesLabel
,
CTX
::
instance
()
->
axesPosition
,
CTX
::
instance
()
->
axesMikado
,
CTX
::
instance
()
->
axesForceValue
?
CTX
::
instance
()
->
axesValue
:
CTX
::
instance
()
->
axesPosition
);
}
else
if
(
geometryExists
){
double
bb
[
6
]
=
{
CTX
::
instance
()
->
min
[
0
],
CTX
::
instance
()
->
max
[
0
],
CTX
::
instance
()
->
min
[
1
],
CTX
::
instance
()
->
max
[
1
],
CTX
::
instance
()
->
min
[
2
],
CTX
::
instance
()
->
max
[
2
]};
drawAxes
(
CTX
::
instance
()
->
axes
,
CTX
::
instance
()
->
axesTics
,
CTX
::
instance
()
->
axesFormat
,
CTX
::
instance
()
->
axesLabel
,
bb
,
CTX
::
instance
()
->
axesMikado
,
CTX
::
instance
()
->
axesForceValue
?
CTX
::
instance
()
->
axesValue
:
bb
);
}
}
static
void
drawAxis
(
float
xmin
,
float
ymin
,
float
zmin
,
float
xmax
,
float
ymax
,
float
zmax
,
int
ntics
,
int
mikado
)
{
GLfloat
axes
[]
=
{
xmin
,
ymin
,
zmin
,
xmax
,
ymax
,
zmax
};
GLfloat
colors
[]
=
{
0
,
0
,
0
,
1
,
0
,
0
,
0
,
1
,
};
glVertexPointer
(
3
,
GL_FLOAT
,
0
,
axes
);
glEnableClientState
(
GL_VERTEX_ARRAY
);
glColorPointer
(
4
,
GL_FLOAT
,
0
,
colors
);
glEnableClientState
(
GL_COLOR_ARRAY
);
glDrawArrays
(
GL_LINES
,
0
,
2
);
glDisableClientState
(
GL_VERTEX_ARRAY
);
glDisableClientState
(
GL_COLOR_ARRAY
);
}
static
void
drawGridStipple
(
int
n1
,
int
n2
,
double
p1
[
3
],
double
p2
[
3
],
double
p3
[
3
])
{
double
t1
[
3
]
=
{
p2
[
0
]
-
p1
[
0
],
p2
[
1
]
-
p1
[
1
],
p2
[
2
]
-
p1
[
2
]};
double
t2
[
3
]
=
{
p3
[
0
]
-
p1
[
0
],
p3
[
1
]
-
p1
[
1
],
p3
[
2
]
-
p1
[
2
]};
double
l1
=
norme
(
t1
);
double
l2
=
norme
(
t2
);
std
::
vector
<
GLfloat
>
v
,
c
;
for
(
int
i
=
1
;
i
<
n1
-
1
;
i
++
){
double
d
=
(
double
)
i
/
(
double
)(
n1
-
1
)
*
l1
;
v
.
push_back
(
p1
[
0
]
+
t1
[
0
]
*
d
);
v
.
push_back
(
p1
[
1
]
+
t1
[
1
]
*
d
);
v
.
push_back
(
p1
[
2
]
+
t1
[
2
]
*
d
);
v
.
push_back
(
p1
[
0
]
+
t1
[
0
]
*
d
+
t2
[
0
]
*
l2
);
v
.
push_back
(
p1
[
1
]
+
t1
[
1
]
*
d
+
t2
[
1
]
*
l2
);
v
.
push_back
(
p1
[
2
]
+
t1
[
2
]
*
d
+
t2
[
2
]
*
l2
);
}
for
(
int
i
=
1
;
i
<
n2
-
1
;
i
++
){
double
d
=
(
double
)
i
/
(
double
)(
n2
-
1
)
*
l2
;
v
.
push_back
(
p1
[
0
]
+
t2
[
0
]
*
d
);
v
.
push_back
(
p1
[
1
]
+
t2
[
1
]
*
d
);
v
.
push_back
(
p1
[
2
]
+
t2
[
2
]
*
d
);
v
.
push_back
(
p1
[
0
]
+
t2
[
0
]
*
d
+
t1
[
0
]
*
l1
);
v
.
push_back
(
p1
[
1
]
+
t2
[
1
]
*
d
+
t1
[
1
]
*
l1
);
v
.
push_back
(
p1
[
2
]
+
t2
[
2
]
*
d
+
t1
[
2
]
*
l1
);
}
for
(
unsigned
int
i
=
0
;
i
<
v
.
size
();
i
++
){
c
.
push_back
(
0
);
c
.
push_back
(
0
);
c
.
push_back
(
0
);
c
.
push_back
(
0.2
);
}
glBlendFunc
(
GL_SRC_ALPHA
,
GL_ONE_MINUS_SRC_ALPHA
);
glEnable
(
GL_BLEND
);
glVertexPointer
(
3
,
GL_FLOAT
,
0
,
&
v
[
0
]);
glEnableClientState
(
GL_VERTEX_ARRAY
);
glColorPointer
(
4
,
GL_FLOAT
,
0
,
&
c
[
0
]);
glEnableClientState
(
GL_COLOR_ARRAY
);
glDrawArrays
(
GL_LINES
,
0
,
v
.
size
()
/
3
);
glDisableClientState
(
GL_VERTEX_ARRAY
);
glDisableClientState
(
GL_COLOR_ARRAY
);
glDisable
(
GL_BLEND
);
}
int
drawContext
::
drawTics
(
drawContext
*
ctx
,
int
comp
,
double
n
,
std
::
string
&
format
,
std
::
string
&
label
,
double
p1
[
3
],
double
p2
[
3
],
double
perp
[
3
],
int
mikado
,
double
pixelfact
,
double
value_p1
[
3
],
double
value_p2
[
3
])
{
// draws n tic marks (in direction perp) and labels along the line p1->p2
double
t
[
3
]
=
{
p2
[
0
]
-
p1
[
0
],
p2
[
1
]
-
p1
[
1
],
p2
[
2
]
-
p1
[
2
]};
double
l
=
norme
(
t
);
double
value_t
[
3
]
=
{
value_p2
[
0
]
-
value_p1
[
0
],
value_p2
[
1
]
-
value_p1
[
1
],
value_p2
[
2
]
-
value_p1
[
2
]};
double
value_l
=
norme
(
value_t
);
double
w
=
10
*
pixelfact
;
// tic marks are 10 pixels long
double
w2
=
w
*
4.5
;
// distance to labels
// draw label at the end of the axis
if
(
label
.
size
()){
drawString
lbl
(
label
,
15
*
_fontFactor
);
lbl
.
draw
(
p2
[
0
]
+
t
[
0
]
*
w2
,
p2
[
1
]
+
t
[
1
]
*
w2
,
p2
[
2
]
+
t
[
2
]
*
w2
,
_width
/
(
_right
-
_left
)
*
_scale
[
0
],
_height
/
(
_top
-
_bottom
)
*
_scale
[
0
]);
}
// return number of tics in special cases
if
(
n
<
2.
)
return
0
;
if
(
format
.
empty
())
return
n
;
// select perp direction automatically if it is not provided
double
lp
=
norme
(
perp
);
if
(
!
lp
){
switch
(
comp
){
case
0
:
perp
[
1
]
=
-
1.
;
break
;
case
1
:
perp
[
0
]
=
-
1.
;
break
;
case
2
:
perp
[
0
]
=
1.
;
break
;
default:
break
;
}
}
char
tmp
[
256
];
// reduce number of vertical tics if not zoomed enough
double
ww
=
_width
/
(
_right
-
_left
)
*
_scale
[
0
];
double
hh
=
_height
/
(
_top
-
_bottom
)
*
_scale
[
0
];
if
(
hh
<
10
&&
comp
==
1
){
n
=
2
;
}
// draw n tics
double
step
=
l
/
(
double
)(
n
-
1
);
double
value_step
=
value_l
/
(
double
)(
n
-
1
);
for
(
int
i
=
0
;
i
<
n
;
i
++
){
double
d
=
i
*
step
;
double
p
[
3
]
=
{
p1
[
0
]
+
t
[
0
]
*
d
,
p1
[
1
]
+
t
[
1
]
*
d
,
p1
[
2
]
+
t
[
2
]
*
d
};
double
q
[
3
]
=
{
p
[
0
]
+
perp
[
0
]
*
w
,
p
[
1
]
+
perp
[
1
]
*
w
,
p
[
2
]
+
perp
[
2
]
*
w
};
double
r
[
3
]
=
{
p
[
0
]
+
perp
[
0
]
*
w2
,
p
[
1
]
+
perp
[
1
]
*
w2
,
p
[
2
]
+
perp
[
2
]
*
w2
};
double
value_d
=
i
*
value_step
;
double
value_p
[
3
]
=
{
value_p1
[
0
]
+
value_t
[
0
]
*
value_d
,
value_p1
[
1
]
+
value_t
[
1
]
*
value_d
,
value_p1
[
2
]
+
value_t
[
2
]
*
value_d
};
GLfloat
lines
[]
=
{
(
float
)
p
[
0
],
(
float
)
p
[
1
],
(
float
)
p
[
2
],
(
float
)
q
[
0
],
(
float
)
q
[
1
],
(
float
)
q
[
2
]
};
GLfloat
colors
[]
=
{
0
,
0
,
0
,
1
,
0
,
0
,
0
,
1
,
};
glVertexPointer
(
3
,
GL_FLOAT
,
0
,
lines
);
glEnableClientState
(
GL_VERTEX_ARRAY
);
glColorPointer
(
4
,
GL_FLOAT
,
0
,
colors
);
glEnableClientState
(
GL_COLOR_ARRAY
);
glDrawArrays
(
GL_LINES
,
0
,
2
);
glDisableClientState
(
GL_VERTEX_ARRAY
);
glDisableClientState
(
GL_COLOR_ARRAY
);
// draw tic labels
if
(
comp
<
0
)
// display the length value (ruler-mode, starting at 0)
sprintf
(
tmp
,
format
.
c_str
(),
value_d
);
else
// display the coordinate value
sprintf
(
tmp
,
format
.
c_str
(),
value_p
[
comp
]);
if
(
strlen
(
tmp
)){
drawString
lbl
(
tmp
,
15
*
_fontFactor
);
lbl
.
draw
(
r
[
0
],
r
[
1
],
r
[
2
],
ww
,
hh
);
}
}
return
n
;
}
void
drawContext
::
drawAxes
(
int
mode
,
double
tics
[
3
],
std
::
string
format
[
3
],
std
::
string
label
[
3
],
double
bb
[
6
],
int
mikado
,
double
value_bb
[
6
])
{
// mode 0: nothing
// 1: axes
// 2: box
// 3: full grid
// 4: open grid
// 5: ruler
if
((
mode
<
1
)
||
(
bb
[
0
]
==
bb
[
1
]
&&
bb
[
2
]
==
bb
[
3
]
&&
bb
[
4
]
==
bb
[
5
]))
return
;
double
xmin
=
bb
[
0
],
xmax
=
bb
[
1
];
double
ymin
=
bb
[
2
],
ymax
=
bb
[
3
];
double
zmin
=
bb
[
4
],
zmax
=
bb
[
5
];
double
orig
[
3
]
=
{
xmin
,
ymin
,
zmin
};
double
value_xmin
=
value_bb
[
0
],
value_xmax
=
value_bb
[
1
];
double
value_ymin
=
value_bb
[
2
],
value_ymax
=
value_bb
[
3
];
double
value_zmin
=
value_bb
[
4
],
value_zmax
=
value_bb
[
5
];
double
value_orig
[
3
]
=
{
value_xmin
,
value_ymin
,
value_zmin
};
double
pixelfact
=
_pixel_equiv_x
/
_scale
[
0
];
if
(
mode
==
5
){
// draw ruler from xyz_min to xyz_max
double
end
[
3
]
=
{
xmax
,
ymax
,
zmax
};
double
dir
[
3
]
=
{
xmax
-
xmin
,
ymax
-
ymin
,
zmax
-
zmin
};
double
perp
[
3
];
if
((
fabs
(
dir
[
0
])
>=
fabs
(
dir
[
1
])
&&
fabs
(
dir
[
0
])
>=
fabs
(
dir
[
2
]))
||
(
fabs
(
dir
[
1
])
>=
fabs
(
dir
[
0
])
&&
fabs
(
dir
[
1
])
>=
fabs
(
dir
[
2
]))){
perp
[
0
]
=
dir
[
1
];
perp
[
1
]
=
-
dir
[
0
];
perp
[
2
]
=
0.
;
}
else
{
perp
[
0
]
=
0.
;
perp
[
1
]
=
dir
[
2
];
perp
[
2
]
=
-
dir
[
1
];
}
double
value_end
[
3
]
=
{
value_xmax
,
value_ymax
,
value_zmax
};
drawTics
(
this
,
-
1
,
tics
[
0
],
format
[
0
],
label
[
0
],
orig
,
end
,
perp
,
mikado
,
pixelfact
,
value_orig
,
value_end
);
drawAxis
(
xmin
,
ymin
,
zmin
,
xmax
,
ymax
,
zmax
,
tics
[
0
],
mikado
);
return
;
}
double
xx
[
3
]
=
{
xmax
,
ymin
,
zmin
};
double
yy
[
3
]
=
{
xmin
,
ymax
,
zmin
};
double
zz
[
3
]
=
{
xmin
,
ymin
,
zmax
};
double
value_xx
[
3
]
=
{
value_xmax
,
value_ymin
,
value_zmin
};
double
value_yy
[
3
]
=
{
value_xmin
,
value_ymax
,
value_zmin
};
double
value_zz
[
3
]
=
{
value_xmin
,
value_ymin
,
value_zmax
};
double
dxm
[
3
]
=
{
0.
,
(
ymin
!=
ymax
)
?
-
1.
:
0.
,
(
zmin
!=
zmax
)
?
-
1.
:
0.
};
double
dym
[
3
]
=
{(
xmin
!=
xmax
)
?
-
1.
:
0.
,
0.
,
(
zmin
!=
zmax
)
?
-
1.
:
0.
};
double
dzm
[
3
]
=
{(
xmin
!=
xmax
)
?
-
1.
:
0.
,
(
ymin
!=
ymax
)
?
-
1.
:
0.
,
0.
};
int
nx
=
(
xmin
!=
xmax
)
?
drawTics
(
this
,
0
,
tics
[
0
],
format
[
0
],
label
[
0
],
orig
,
xx
,
dxm
,
mikado
,
pixelfact
,
value_orig
,
value_xx
)
:
0
;
int
ny
=
(
ymin
!=
ymax
)
?
drawTics
(
this
,
1
,
tics
[
1
],
format
[
1
],
label
[
1
],
orig
,
yy
,
dym
,
mikado
,
pixelfact
,
value_orig
,
value_yy
)
:
0
;
int
nz
=
(
zmin
!=
zmax
)
?
drawTics
(
this
,
2
,
tics
[
2
],
format
[
2
],
label
[
2
],
orig
,
zz
,
dzm
,
mikado
,
pixelfact
,
value_orig
,
value_zz
)
:
0
;
drawAxis
(
xmin
,
ymin
,
zmin
,
xmax
,
ymin
,
zmin
,
nx
,
mikado
);
drawAxis
(
xmin
,
ymin
,
zmin
,
xmin
,
ymax
,
zmin
,
ny
,
mikado
);
drawAxis
(
xmin
,
ymin
,
zmin
,
xmin
,
ymin
,
zmax
,
nz
,
mikado
);
// open box
if
(
mode
>
1
){
drawAxis
(
xmin
,
ymax
,
zmin
,
xmax
,
ymax
,
zmin
,
nx
,
mikado
);
drawAxis
(
xmax
,
ymin
,
zmin
,
xmax
,
ymax
,
zmin
,
ny
,
mikado
);
drawAxis
(
xmax
,
ymin
,
zmin
,
xmax
,
ymin
,
zmax
,
nz
,
mikado
);
drawAxis
(
xmin
,
ymin
,
zmax
,
xmax
,
ymin
,
zmax
,
nx
,
mikado
);
drawAxis
(
xmin
,
ymin
,
zmax
,
xmin
,
ymax
,
zmax
,
ny
,
mikado
);
drawAxis
(
xmin
,
ymax
,
zmin
,
xmin
,
ymax
,
zmax
,
nz
,
mikado
);
}
// closed box
if
(
mode
==
2
||
mode
==
3
){
drawAxis
(
xmin
,
ymax
,
zmax
,
xmax
,
ymax
,
zmax
,
nx
,
mikado
);
drawAxis
(
xmax
,
ymin
,
zmax
,
xmax
,
ymax
,
zmax
,
ny
,
mikado
);
drawAxis
(
xmax
,
ymax
,
zmin
,
xmax
,
ymax
,
zmax
,
nz
,
mikado
);
}
if
(
mode
>
2
){
drawGridStipple
(
nx
,
ny
,
orig
,
xx
,
yy
);
drawGridStipple
(
ny
,
nz
,
orig
,
yy
,
zz
);
drawGridStipple
(
nx
,
nz
,
orig
,
xx
,
zz
);
}
if
(
mode
==
3
){
double
orig2
[
3
]
=
{
xmax
,
ymax
,
zmax
};
double
xy
[
3
]
=
{
xmax
,
ymax
,
zmin
};
double
yz
[
3
]
=
{
xmin
,
ymax
,
zmax
};
double
xz
[
3
]
=
{
xmax
,
ymin
,
zmax
};
if
(
zmin
!=
zmax
)
drawGridStipple
(
nx
,
ny
,
orig2
,
yz
,
xz
);
if
(
xmin
!=
xmax
)
drawGridStipple
(
ny
,
nz
,
orig2
,
xz
,
xy
);
if
(
ymin
!=
ymax
)
drawGridStipple
(
nx
,
nz
,
orig2
,
yz
,
xy
);
}
}
void
drawContext
::
drawSmallAxes
()
{
{
glLineWidth
(
1.
);
glLineWidth
(
1.
);
glPushMatrix
();
glPushMatrix
();
...
@@ -593,12 +884,12 @@ void drawContext::drawAxes()
...
@@ -593,12 +884,12 @@ void drawContext::drawAxes()
x0
+
zx
,
y0
+
zy
x0
+
zx
,
y0
+
zy
};
};
GLfloat
colors
[]
=
{
GLfloat
colors
[]
=
{
0
.
,
0
,
0
,
1
.
,
0
,
0
,
0
,
1
,
0
.
,
0
,
0
,
1
.
,
0
,
0
,
0
,
1
,
0
,
0
,
0
.
,
1
.
,
0
,
0
,
0
,
1
,
0
,
0
,
0
.
,
1
.
,
0
,
0
,
0
,
1
,
0
,
0
.
,
0
,
1
.
,
0
,
0
,
0
,
1
,
0
,
0
.
,
0
,
1
.
,
0
,
0
,
0
,
1
,
};
};
glVertexPointer
(
2
,
GL_FLOAT
,
0
,
axes
);
glVertexPointer
(
2
,
GL_FLOAT
,
0
,
axes
);
glEnableClientState
(
GL_VERTEX_ARRAY
);
glEnableClientState
(
GL_VERTEX_ARRAY
);
...
@@ -807,9 +1098,10 @@ void drawContext::drawView()
...
@@ -807,9 +1098,10 @@ void drawContext::drawView()
drawMesh
();
checkGlError
(
"Draw mesh"
);
drawMesh
();
checkGlError
(
"Draw mesh"
);
drawGeom
();
checkGlError
(
"Draw geometry"
);
drawGeom
();
checkGlError
(
"Draw geometry"
);
drawPost
();
checkGlError
(
"Draw post-pro"
);
drawPost
();
checkGlError
(
"Draw post-pro"
);
drawAxes
();
checkGlError
(
"Draw axes"
);
glDisable
(
GL_DEPTH_TEST
);
glDisable
(
GL_DEPTH_TEST
);
drawScale
();
checkGlError
(
"Draw scales"
);
drawScale
();
checkGlError
(
"Draw scales"
);
drawAxes
();
checkGlError
(
"Draw axes"
);
draw
Small
Axes
();
checkGlError
(
"Draw
small
axes"
);
drawText2d
();
checkGlError
(
"Draw text2d"
);
drawText2d
();
checkGlError
(
"Draw text2d"
);
drawGraph2d
();
checkGlError
(
"Draw graph2d"
);
drawGraph2d
();
checkGlError
(
"Draw graph2d"
);
}
}
...
...
This diff is collapsed.
Click to expand it.
contrib/mobile/drawContext.h
+
9
−
0
View file @
caa6f2ed
...
@@ -63,6 +63,7 @@ private:
...
@@ -63,6 +63,7 @@ private:
float
_left
,
_right
,
_top
,
_bottom
,
_far
;
// value of "border"
float
_left
,
_right
,
_top
,
_bottom
,
_far
;
// value of "border"
float
_fontFactor
;
float
_fontFactor
;
bool
_retina
;
// retina display
bool
_retina
;
// retina display
double
_pixel_equiv_x
,
_pixel_equiv_y
;
void
OrthofFromGModel
(
void
);
void
OrthofFromGModel
(
void
);
void
drawPView
(
PView
*
p
);
void
drawPView
(
PView
*
p
);
...
@@ -83,6 +84,14 @@ public:
...
@@ -83,6 +84,14 @@ public:
int
fix2dCoordinates
(
double
*
x
,
double
*
y
);
int
fix2dCoordinates
(
double
*
x
,
double
*
y
);
void
drawView
();
void
drawView
();
void
drawAxes
();
void
drawAxes
();
void
drawAxes
(
int
mode
,
double
tics
[
3
],
std
::
string
format
[
3
],
std
::
string
label
[
3
],
double
bb
[
6
],
int
mikado
,
double
value_bb
[
6
]);
int
drawTics
(
drawContext
*
ctx
,
int
comp
,
double
n
,
std
::
string
&
format
,
std
::
string
&
label
,
double
p1
[
3
],
double
p2
[
3
],
double
perp
[
3
],
int
mikado
,
double
pixelfact
,
double
value_p1
[
3
],
double
value_p2
[
3
]);
void
drawSmallAxes
();
void
drawGeom
();
void
drawGeom
();
void
drawMesh
();
void
drawMesh
();
void
drawPost
();
void
drawPost
();
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment