

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 |
Definition at line 25 of file ArcTools.java.
| org::scilab::modules::renderer::arcDrawing::ArcTools::ArcTools | ( | Vector3D | center, | |
| Vector3D | semiMinorAxis, | |||
| Vector3D | semiMajorAxis, | |||
| double | startAngle, | |||
| double | endAngle | |||
| ) | [inline, protected] |
Constructor
| 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 }

| 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
| 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 }


| abstract void org::scilab::modules::renderer::arcDrawing::ArcTools::drawCircle | ( | GL | gl | ) | [protected, pure virtual] |
drawArc
| gl | current GL pipeline |
Implemented in org::scilab::modules::renderer::arcDrawing::FastArcFillTools, org::scilab::modules::renderer::arcDrawing::FastArcLineTools, org::scilab::modules::renderer::arcDrawing::NurbsArcFillTools, and org::scilab::modules::renderer::arcDrawing::NurbsArcLineTools.
Referenced by org::scilab::modules::renderer::arcDrawing::ArcLineDrawerGL::drawArc(), and org::scilab::modules::renderer::arcDrawing::ArcFillDrawerGL::drawArc().

| double org::scilab::modules::renderer::arcDrawing::ArcTools::getSweepAngle | ( | ) | [inline] |
Definition at line 87 of file ArcTools.java.
References angularRegion.
Referenced by org::scilab::modules::renderer::arcDrawing::NurbsArcLineTools::drawCircle(), org::scilab::modules::renderer::arcDrawing::NurbsArcFillTools::drawCircle(), org::scilab::modules::renderer::arcDrawing::FastArcLineTools::drawCircle(), and org::scilab::modules::renderer::arcDrawing::FastArcFillTools::drawCircle().
00087 { 00088 return angularRegion; 00089 }

final int org::scilab::modules::renderer::arcDrawing::ArcTools::NB_SLICES = 64 [static, protected] |
number of slice for the circle
Definition at line 28 of file ArcTools.java.
Referenced by org::scilab::modules::renderer::arcDrawing::FastArcLineTools::drawCircle(), and org::scilab::modules::renderer::arcDrawing::FastArcFillTools::drawCircle().
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().
double org::scilab::modules::renderer::arcDrawing::ArcTools::startAngle [private] |
starting angle
Definition at line 37 of file ArcTools.java.
Referenced by setCoordinatesToCircleGL().
double org::scilab::modules::renderer::arcDrawing::ArcTools::angularRegion [private] |
size of the angular region of the arc
Definition at line 40 of file ArcTools.java.
Referenced by getSweepAngle().
1.5.5