Merge branch 'devel' of https://github.com/cnr-isti-vclab/vcglib into devel
This commit is contained in:
commit
aa8cf5f4ae
|
@ -96,6 +96,7 @@ void PanMode::Apply (Trackball * tb, Point3f new_point)
|
||||||
|
|
||||||
void PanMode::Draw(Trackball * tb){
|
void PanMode::Draw(Trackball * tb){
|
||||||
DrawSphereIcon(tb,true);
|
DrawSphereIcon(tb,true);
|
||||||
|
DrawSphereAxis(tb);
|
||||||
DrawUglyPanMode(tb);
|
DrawUglyPanMode(tb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -832,6 +832,66 @@ void DrawUglyScaleMode(Trackball * tb)
|
||||||
DrawUglyLetter(tb,ugly_s);
|
DrawUglyLetter(tb,ugly_s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@brief function to draw X,Y and Z axis in the trackball sphere.
|
||||||
|
|
||||||
|
Draws the three colored axis inside the trackball sphere. added to better see the trackball center when panning
|
||||||
|
|
||||||
|
@param tb the manipulator.
|
||||||
|
*/
|
||||||
|
void DrawSphereAxis(Trackball * tb)
|
||||||
|
{
|
||||||
|
glPushAttrib(GL_TRANSFORM_BIT | GL_DEPTH_BUFFER_BIT | GL_ENABLE_BIT | GL_LINE_BIT | GL_CURRENT_BIT | GL_LIGHTING_BIT);
|
||||||
|
glMatrixMode(GL_MODELVIEW);
|
||||||
|
glPushMatrix();
|
||||||
|
glDepthMask(GL_FALSE);
|
||||||
|
|
||||||
|
Point3f center = tb->center + tb->track.InverseMatrix()*Point3f(0, 0, 0);
|
||||||
|
glTranslate(center);
|
||||||
|
glScale(tb->radius / tb->track.sca);
|
||||||
|
|
||||||
|
float amb[4] = { .35f, .35f, .35f, 1.0f };
|
||||||
|
float col[4] = { .5f, .5f, .8f, 1.0f };
|
||||||
|
glEnable(GL_LINE_SMOOTH);
|
||||||
|
glLineWidth(DH.LineWidthMoving);
|
||||||
|
glDisable(GL_COLOR_MATERIAL); // has to be disabled, it is used by wrapper to draw meshes, and prevent direct material setting, used here
|
||||||
|
|
||||||
|
glEnable(GL_LIGHTING);
|
||||||
|
glEnable(GL_LIGHT0);
|
||||||
|
glEnable(GL_BLEND);
|
||||||
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
|
glColor(DH.color);
|
||||||
|
glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, amb);
|
||||||
|
|
||||||
|
col[0] = 1.0f; col[1] = 0.0f; col[2] = 0.0f;
|
||||||
|
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, col);
|
||||||
|
glBegin(GL_LINES);
|
||||||
|
glNormal3d(-1.0, 0.0, 0.0);
|
||||||
|
glVertex3d(-1.2, 0.0, 0.0);
|
||||||
|
glNormal3d( 1.0, 0.0, 0.0);
|
||||||
|
glVertex3d( 1.2, 0.0, 0.0);
|
||||||
|
glEnd();
|
||||||
|
col[0] = 0.0f; col[1] = 1.0f; col[2] = 0.0f;
|
||||||
|
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, col);
|
||||||
|
glBegin(GL_LINES);
|
||||||
|
glNormal3d(0.0,-1.0, 0.0);
|
||||||
|
glVertex3d(0.0,-1.2, 0.0);
|
||||||
|
glNormal3d(0.0, 1.0, 0.0);
|
||||||
|
glVertex3d(0.0, 1.2, 0.0);
|
||||||
|
glEnd();
|
||||||
|
col[0] = 0.0f; col[1] = 0.0f; col[2] = 1.0f;
|
||||||
|
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, col);
|
||||||
|
glBegin(GL_LINES);
|
||||||
|
glNormal3d(0.0, 0.0,-1.0);
|
||||||
|
glVertex3d(0.0, 0.0,-1.2);
|
||||||
|
glNormal3d(0.0, 0.0, 1.0);
|
||||||
|
glVertex3d(0.0, 0.0, 1.2);
|
||||||
|
glEnd();
|
||||||
|
|
||||||
|
glPopMatrix();
|
||||||
|
glPopAttrib();
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief AxisMode drawing function, member of the \e DrawUgly series.
|
@brief AxisMode drawing function, member of the \e DrawUgly series.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue