org::scilab::modules::renderer::arcDrawing::ArcTools Class Reference

Inheritance diagram for org::scilab::modules::renderer::arcDrawing::ArcTools:

Inheritance graph
[legend]
Collaboration diagram for org::scilab::modules::renderer::arcDrawing::ArcTools:

Collaboration graph
[legend]

Public Member Functions

void setCoordinatesToCircleGL (GL gl)
double getSweepAngle ()

Protected Member Functions

 ArcTools (Vector3D center, Vector3D semiMinorAxis, Vector3D semiMajorAxis, double startAngle, double endAngle)
abstract void drawCircle (GL gl)

Static Protected Attributes

static final int NB_SLICES = 64

Private Attributes

Vector3D scale
Matrix4D rotationMatrix
Vector3D center
double startAngle
double angularRegion

Detailed Description

ArcTools
Author:
Sylvestre Koumar

Definition at line 25 of file ArcTools.java.


Constructor & Destructor Documentation

org::scilab::modules::renderer::arcDrawing::ArcTools::ArcTools ( Vector3D  center,
Vector3D  semiMinorAxis,
Vector3D  semiMajorAxis,
double  startAngle,
double  endAngle 
) [inline, protected]

Constructor

Parameters:
center Vector3D
semiMinorAxis Vector3D
semiMajorAxis Vector3D
startAngle double
endAngle double

Definition at line 51 of file ArcTools.java.

References org::scilab::modules::renderer::utils::geom3D::Vector3D::crossProduct(), org::scilab::modules::renderer::utils::geom3D::Vector3D::getNorm(), org::scilab::modules::renderer::utils::geom3D::Vector3D::getNormalized(), rotationMatrix, scale, and org::scilab::modules::renderer::utils::geom3D::Matrix4D::setFromRotatedBasis().

00051                                                                                                                                 {
00052                 this.center = center;
00053                 Vector3D thirdVector = semiMinorAxis.crossProduct(semiMajorAxis).getNormalized();
00054                 
00055                 rotationMatrix = new Matrix4D();
00056                 rotationMatrix.setFromRotatedBasis(semiMinorAxis, semiMajorAxis, thirdVector);
00057                 
00058                 // the arc is flat, Z coordinate does not matter.
00059                 scale = new Vector3D(semiMinorAxis.getNorm(), semiMajorAxis.getNorm() , 1.0);
00060                 
00061                 this.startAngle = startAngle;
00062                 this.angularRegion = endAngle - startAngle;
00063                 
00064         }

Here is the call graph for this function:


Member Function Documentation

void org::scilab::modules::renderer::arcDrawing::ArcTools::setCoordinatesToCircleGL ( GL  gl  )  [inline]

Modify OpenGL frame so the ellipse which is the support of the arc become a circle

Parameters:
gl current OpenGL pipeline

Definition at line 70 of file ArcTools.java.

References center, org::scilab::modules::renderer::utils::geom3D::Matrix4D::getOpenGLRepresentation(), org::scilab::modules::renderer::utils::geom3D::Vector3D::getX(), org::scilab::modules::renderer::utils::geom3D::Vector3D::getY(), org::scilab::modules::renderer::utils::geom3D::Vector3D::getZ(), rotationMatrix, scale, and startAngle.

Referenced by org::scilab::modules::renderer::arcDrawing::ArcLineTools::beginRendering(), and org::scilab::modules::renderer::arcDrawing::ArcFillTools::beginRendering().

00070                                                     {
00071                 gl.glTranslated(center.getX(), center.getY(), center.getZ());
00072                 gl.glMultMatrixd(rotationMatrix.getOpenGLRepresentation(), 0);
00073                 gl.glScaled(scale.getX(), scale.getY(), scale.getZ());
00074                 // Put the minimum angle has greatest axis, so the draw sart at Y = 0.
00075                 gl.glRotated(Math.toDegrees(startAngle), 0.0, 0.0, 1.0);
00076         }

Here is the call graph for this function:

Here is the caller graph for this function:

abstract void org::scilab::modules::renderer::arcDrawing::ArcTools::drawCircle ( GL  gl  )  [protected, pure virtual]

double org::scilab::modules::renderer::arcDrawing::ArcTools::getSweepAngle (  )  [inline]


Field Documentation

scale to transform the ellipse into a circle

Definition at line 31 of file ArcTools.java.

Referenced by ArcTools(), and setCoordinatesToCircleGL().

To put the ellipse in the right position

Definition at line 33 of file ArcTools.java.

Referenced by ArcTools(), and setCoordinatesToCircleGL().

center of the ellipse

Definition at line 35 of file ArcTools.java.

Referenced by setCoordinatesToCircleGL().

starting angle

Definition at line 37 of file ArcTools.java.

Referenced by setCoordinatesToCircleGL().

size of the angular region of the arc

Definition at line 40 of file ArcTools.java.

Referenced by getSweepAngle().


The documentation for this class was generated from the following file:

Generated on Tue Sep 9 18:27:39 2008 for Scilab [trunk] by  doxygen 1.5.5