From: <jpi...@us...> - 2011-10-21 20:24:12
|
Revision: 8831 http://octave.svn.sourceforge.net/octave/?rev=8831&view=rev Author: jpicarbajal Date: 2011-10-21 20:24:00 +0000 (Fri, 21 Oct 2011) Log Message: ----------- geometry. re-adding Added Paths: ----------- trunk/octave-forge/main/geometry/ trunk/octave-forge/main/geometry/DESCRIPTION trunk/octave-forge/main/geometry/doc/ trunk/octave-forge/main/geometry/doc/NEWS trunk/octave-forge/main/geometry/inst/ trunk/octave-forge/main/geometry/inst/geom2d/ trunk/octave-forge/main/geometry/inst/geom2d/Contents.m trunk/octave-forge/main/geometry/inst/geom2d/angle2Points.m trunk/octave-forge/main/geometry/inst/geom2d/angle3Points.m trunk/octave-forge/main/geometry/inst/geom2d/angleAbsDiff.m trunk/octave-forge/main/geometry/inst/geom2d/angleDiff.m trunk/octave-forge/main/geometry/inst/geom2d/angleSort.m trunk/octave-forge/main/geometry/inst/geom2d/angles2d.m trunk/octave-forge/main/geometry/inst/geom2d/bisector.m trunk/octave-forge/main/geometry/inst/geom2d/boxes2d.m trunk/octave-forge/main/geometry/inst/geom2d/cartesianLine.m trunk/octave-forge/main/geometry/inst/geom2d/cbezier2poly.m trunk/octave-forge/main/geometry/inst/geom2d/centroid.m trunk/octave-forge/main/geometry/inst/geom2d/changelog.txt trunk/octave-forge/main/geometry/inst/geom2d/circleArcAsCurve.m trunk/octave-forge/main/geometry/inst/geom2d/circleAsPolygon.m trunk/octave-forge/main/geometry/inst/geom2d/circles2d.m trunk/octave-forge/main/geometry/inst/geom2d/clipEdge.m trunk/octave-forge/main/geometry/inst/geom2d/clipLine.m trunk/octave-forge/main/geometry/inst/geom2d/clipPoints.m trunk/octave-forge/main/geometry/inst/geom2d/clipRay.m trunk/octave-forge/main/geometry/inst/geom2d/crackPattern.m trunk/octave-forge/main/geometry/inst/geom2d/crackPattern2.m trunk/octave-forge/main/geometry/inst/geom2d/createBasisTransform.m trunk/octave-forge/main/geometry/inst/geom2d/createCircle.m trunk/octave-forge/main/geometry/inst/geom2d/createDirectedCircle.m trunk/octave-forge/main/geometry/inst/geom2d/createEdge.m trunk/octave-forge/main/geometry/inst/geom2d/createHomothecy.m trunk/octave-forge/main/geometry/inst/geom2d/createLine.m trunk/octave-forge/main/geometry/inst/geom2d/createLineReflection.m trunk/octave-forge/main/geometry/inst/geom2d/createRay.m trunk/octave-forge/main/geometry/inst/geom2d/createRotation.m trunk/octave-forge/main/geometry/inst/geom2d/createScaling.m trunk/octave-forge/main/geometry/inst/geom2d/createTranslation.m trunk/octave-forge/main/geometry/inst/geom2d/createVector.m trunk/octave-forge/main/geometry/inst/geom2d/deg2rad.m trunk/octave-forge/main/geometry/inst/geom2d/distancePointEdge.m trunk/octave-forge/main/geometry/inst/geom2d/distancePointLine.m trunk/octave-forge/main/geometry/inst/geom2d/distancePoints.m trunk/octave-forge/main/geometry/inst/geom2d/drawArrow.m trunk/octave-forge/main/geometry/inst/geom2d/drawBezierCurve.m trunk/octave-forge/main/geometry/inst/geom2d/drawBox.m trunk/octave-forge/main/geometry/inst/geom2d/drawCenteredEdge.m trunk/octave-forge/main/geometry/inst/geom2d/drawCircle.m trunk/octave-forge/main/geometry/inst/geom2d/drawCircleArc.m trunk/octave-forge/main/geometry/inst/geom2d/drawEdge.m trunk/octave-forge/main/geometry/inst/geom2d/drawEllipse.m trunk/octave-forge/main/geometry/inst/geom2d/drawEllipseArc.m trunk/octave-forge/main/geometry/inst/geom2d/drawLabels.m trunk/octave-forge/main/geometry/inst/geom2d/drawLine.m trunk/octave-forge/main/geometry/inst/geom2d/drawOrientedBox.m trunk/octave-forge/main/geometry/inst/geom2d/drawParabola.m trunk/octave-forge/main/geometry/inst/geom2d/drawPoint.m trunk/octave-forge/main/geometry/inst/geom2d/drawRay.m trunk/octave-forge/main/geometry/inst/geom2d/drawRect.m trunk/octave-forge/main/geometry/inst/geom2d/drawShape.m trunk/octave-forge/main/geometry/inst/geom2d/edgeAngle.m trunk/octave-forge/main/geometry/inst/geom2d/edgeLength.m trunk/octave-forge/main/geometry/inst/geom2d/edgePosition.m trunk/octave-forge/main/geometry/inst/geom2d/edgeToLine.m trunk/octave-forge/main/geometry/inst/geom2d/edges2d.m trunk/octave-forge/main/geometry/inst/geom2d/ellipseAsPolygon.m trunk/octave-forge/main/geometry/inst/geom2d/ellipses2d.m trunk/octave-forge/main/geometry/inst/geom2d/enclosingCircle.m trunk/octave-forge/main/geometry/inst/geom2d/fitAffineTransform2d.m trunk/octave-forge/main/geometry/inst/geom2d/hexagonalGrid.m trunk/octave-forge/main/geometry/inst/geom2d/inertiaEllipse.m trunk/octave-forge/main/geometry/inst/geom2d/intersectBoxes.m trunk/octave-forge/main/geometry/inst/geom2d/intersectCircles.m trunk/octave-forge/main/geometry/inst/geom2d/intersectEdges.m trunk/octave-forge/main/geometry/inst/geom2d/intersectLineCircle.m trunk/octave-forge/main/geometry/inst/geom2d/intersectLineEdge.m trunk/octave-forge/main/geometry/inst/geom2d/intersectLines.m trunk/octave-forge/main/geometry/inst/geom2d/isCounterClockwise.m trunk/octave-forge/main/geometry/inst/geom2d/isLeftOriented.m trunk/octave-forge/main/geometry/inst/geom2d/isParallel.m trunk/octave-forge/main/geometry/inst/geom2d/isPerpendicular.m trunk/octave-forge/main/geometry/inst/geom2d/isPointInCircle.m trunk/octave-forge/main/geometry/inst/geom2d/isPointInEllipse.m trunk/octave-forge/main/geometry/inst/geom2d/isPointOnCircle.m trunk/octave-forge/main/geometry/inst/geom2d/isPointOnEdge.m trunk/octave-forge/main/geometry/inst/geom2d/isPointOnLine.m trunk/octave-forge/main/geometry/inst/geom2d/isPointOnRay.m trunk/octave-forge/main/geometry/inst/geom2d/lineAngle.m trunk/octave-forge/main/geometry/inst/geom2d/linePosition.m trunk/octave-forge/main/geometry/inst/geom2d/lines2d.m trunk/octave-forge/main/geometry/inst/geom2d/medianLine.m trunk/octave-forge/main/geometry/inst/geom2d/mergeBoxes.m trunk/octave-forge/main/geometry/inst/geom2d/midPoint.m trunk/octave-forge/main/geometry/inst/geom2d/minDistancePoints.m trunk/octave-forge/main/geometry/inst/geom2d/normalizeAngle.m trunk/octave-forge/main/geometry/inst/geom2d/normalizeVector.m trunk/octave-forge/main/geometry/inst/geom2d/orthogonalLine.m trunk/octave-forge/main/geometry/inst/geom2d/parallelLine.m trunk/octave-forge/main/geometry/inst/geom2d/pointOnLine.m trunk/octave-forge/main/geometry/inst/geom2d/points2d.m trunk/octave-forge/main/geometry/inst/geom2d/polarPoint.m trunk/octave-forge/main/geometry/inst/geom2d/private/ trunk/octave-forge/main/geometry/inst/geom2d/private/assertAlmostEqual.m trunk/octave-forge/main/geometry/inst/geom2d/private/assertElementsAlmostEqual.m trunk/octave-forge/main/geometry/inst/geom2d/private/assertEqual.m trunk/octave-forge/main/geometry/inst/geom2d/private/assertFalse.m trunk/octave-forge/main/geometry/inst/geom2d/private/assertTrue.m trunk/octave-forge/main/geometry/inst/geom2d/projPointOnLine.m trunk/octave-forge/main/geometry/inst/geom2d/rad2deg.m trunk/octave-forge/main/geometry/inst/geom2d/radicalAxis.m trunk/octave-forge/main/geometry/inst/geom2d/randomPointInBox.m trunk/octave-forge/main/geometry/inst/geom2d/rays2d.m trunk/octave-forge/main/geometry/inst/geom2d/readme.txt trunk/octave-forge/main/geometry/inst/geom2d/reverseEdge.m trunk/octave-forge/main/geometry/inst/geom2d/reverseLine.m trunk/octave-forge/main/geometry/inst/geom2d/rotateVector.m trunk/octave-forge/main/geometry/inst/geom2d/squareGrid.m trunk/octave-forge/main/geometry/inst/geom2d/transformEdge.m trunk/octave-forge/main/geometry/inst/geom2d/transformLine.m trunk/octave-forge/main/geometry/inst/geom2d/transformPoint.m trunk/octave-forge/main/geometry/inst/geom2d/transformVector.m trunk/octave-forge/main/geometry/inst/geom2d/transforms2d.m trunk/octave-forge/main/geometry/inst/geom2d/triangleGrid.m trunk/octave-forge/main/geometry/inst/geom2d/vectorAngle.m trunk/octave-forge/main/geometry/inst/geom2d/vectorNorm.m trunk/octave-forge/main/geometry/inst/geom2d/vectors2d.m trunk/octave-forge/main/geometry/inst/io/ trunk/octave-forge/main/geometry/inst/io/data2geo.m trunk/octave-forge/main/geometry/inst/io/drawing.svg trunk/octave-forge/main/geometry/inst/io/drawing2.svg trunk/octave-forge/main/geometry/inst/io/drawing3.svg trunk/octave-forge/main/geometry/inst/io/drawing4.svg trunk/octave-forge/main/geometry/inst/io/drawing5.svg trunk/octave-forge/main/geometry/inst/io/private/ trunk/octave-forge/main/geometry/inst/io/private/SVGstrPath2SVGpath.m trunk/octave-forge/main/geometry/inst/io/private/formatSVGstr.m trunk/octave-forge/main/geometry/inst/io/private/getSVGPaths_py.m trunk/octave-forge/main/geometry/inst/io/private/getSVGdata.m trunk/octave-forge/main/geometry/inst/io/private/getSVGstrPath.m trunk/octave-forge/main/geometry/inst/io/private/inkex.py trunk/octave-forge/main/geometry/inst/io/private/lineGeo.m trunk/octave-forge/main/geometry/inst/io/private/lineLoopGeo.m trunk/octave-forge/main/geometry/inst/io/private/parsePath.py trunk/octave-forge/main/geometry/inst/io/private/planeSurfGeo.m trunk/octave-forge/main/geometry/inst/io/private/pointGeo.m trunk/octave-forge/main/geometry/inst/io/private/ruledSurfGeo.m trunk/octave-forge/main/geometry/inst/io/private/simplepath.py trunk/octave-forge/main/geometry/inst/io/svgload.m trunk/octave-forge/main/geometry/inst/io/svgnormalize.m trunk/octave-forge/main/geometry/inst/io/svgpath2polygon.m trunk/octave-forge/main/geometry/matGeom_raw/ trunk/octave-forge/main/geometry/matGeom_raw/Demos/ trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/ trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/capsC26-1-5-10.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/demoGeom3d/ trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/demoGeom3d/demoGeom3d.m trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/demoGeom3d/html/ trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/demoGeom3d/html/demoGeom3d.html trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/demoGeom3d/html/demoGeom3d.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/demoGeom3d/html/demoGeom3d_01.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/demoGeom3d/html/demoGeom3d_02.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/demoGeom3d/html/demoGeom3d_03.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/demoRevolutionSurface.m trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/drawSoccerBall/ trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/drawSoccerBall/drawSoccerBall.m trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/drawSoccerBall/html/ trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/drawSoccerBall/html/drawSoccerBall.html trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/drawSoccerBall/html/drawSoccerBall.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/drawSoccerBall/html/drawSoccerBall_01.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/drawSoccerBall/html/drawSoccerBall_02.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/drawSoccerBall/html/drawSoccerBall_03.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/ trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/demoGeom3d.m trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/demoInertiaEllipsoid.m trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/drawSoccerBall.m trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/drawVoronoiCell.m trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/ trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/demoGeom3d.html trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/demoGeom3d.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/demoGeom3d_01.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/demoGeom3d_02.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/demoGeom3d_03.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/demoInertiaEllipsoid.html trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/demoInertiaEllipsoid.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/demoInertiaEllipsoid_01.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/demoInertiaEllipsoid_02.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/drawSoccerBall.html trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/drawSoccerBall.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/drawSoccerBall_01.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/drawSoccerBall_02.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/drawSoccerBall_03.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/drawVoronoiCell.html trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/drawVoronoiCell.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/drawVoronoiCell_01.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/drawVoronoiCell_02.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/geom3d-demos/html/drawVoronoiCell_03.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/geom3d/triangulateFacesDemo.m trunk/octave-forge/main/geometry/matGeom_raw/Demos/meshes3d/ trunk/octave-forge/main/geometry/matGeom_raw/Demos/meshes3d/demoPolyhedra/ trunk/octave-forge/main/geometry/matGeom_raw/Demos/meshes3d/demoPolyhedra/demoPolyhedra.m trunk/octave-forge/main/geometry/matGeom_raw/Demos/meshes3d/demoPolyhedra/html/ trunk/octave-forge/main/geometry/matGeom_raw/Demos/meshes3d/demoPolyhedra/html/demoPolyhedra.html trunk/octave-forge/main/geometry/matGeom_raw/Demos/meshes3d/demoPolyhedra/html/demoPolyhedra.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/meshes3d/demoPolyhedra/html/demoPolyhedra_01.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/meshes3d/drawVoronoiCell/ trunk/octave-forge/main/geometry/matGeom_raw/Demos/meshes3d/drawVoronoiCell/drawVoronoiCell.m trunk/octave-forge/main/geometry/matGeom_raw/Demos/meshes3d/drawVoronoiCell/html/ trunk/octave-forge/main/geometry/matGeom_raw/Demos/meshes3d/drawVoronoiCell/html/drawVoronoiCell.html trunk/octave-forge/main/geometry/matGeom_raw/Demos/meshes3d/drawVoronoiCell/html/drawVoronoiCell.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/meshes3d/drawVoronoiCell/html/drawVoronoiCell_01.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/meshes3d/drawVoronoiCell/html/drawVoronoiCell_02.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/meshes3d/drawVoronoiCell/html/drawVoronoiCell_03.png trunk/octave-forge/main/geometry/matGeom_raw/Demos/polygons2d/ trunk/octave-forge/main/geometry/matGeom_raw/Demos/polygons2d/demoExpandPolygon/ trunk/octave-forge/main/geometry/matGeom_raw/README trunk/octave-forge/main/geometry/matGeom_raw/geom3d/ trunk/octave-forge/main/geometry/matGeom_raw/geom3d/Contents.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/anglePoints3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/angleSort3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/angles3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/box3dVolume.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/boxes3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/cart2cyl.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/cart2sph2.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/cart2sph2d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/changelog.txt trunk/octave-forge/main/geometry/matGeom_raw/geom3d/changes.txt trunk/octave-forge/main/geometry/matGeom_raw/geom3d/circle3dOrigin.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/circle3dPoint.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/circle3dPosition.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/circles3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/clipConvexPolygon3dHP.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/clipLine3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/clipPoints3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/clipPolygon3dHP.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/composeTransforms3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/createBasisTransform3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/createEulerAnglesRotation.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/createLine3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/createPlane.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/createRotation3dLineAngle.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/createRotationOx.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/createRotationOy.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/createRotationOz.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/createScaling3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/createSphere.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/createTranslation3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/cyl2cart.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/dihedralAngle.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/distanceLines3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/distancePointLine3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/distancePointPlane.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/distancePoints3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawAxis3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawAxisCube.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawBox3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawCircle3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawCircleArc3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawCube.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawCuboid.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawCurve3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawCylinder.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawEdge3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawEllipse3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawEllipsoid.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawGrid3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawLine3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawPartialPatch.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawPlane3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawPoint3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawPolygon3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawPolyline3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawSphere.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawSphericalTriangle.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawSurfPatch.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/drawTorus.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/eulerAnglesToRotation3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/fillPolygon3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/inertiaEllipsoid.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/intersectBoxes3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/intersectEdgePlane.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/intersectLineCylinder.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/intersectLinePlane.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/intersectLinePolygon3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/intersectLineSphere.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/intersectLineTriangle3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/intersectPlaneLine.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/intersectPlaneSphere.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/intersectPlanes.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/intersectRayPolygon3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/isBelowPlane.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/isCoplanar.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/isParallel3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/isPerpendicular3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/linePosition3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/lines3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/medianPlane.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/mergeBoxes3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/midPoint3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/normalize3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/normalizePlane.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/normalizeVector3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/planeNormal.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/planePoint.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/planePosition.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/planes3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/point3dBounds.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/points3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/polygon3dNormalAngle.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/polygonCentroid3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/polygons3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/private/ trunk/octave-forge/main/geometry/matGeom_raw/geom3d/private/localToGlobal3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/projPointOnPlane.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/randomAngle3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/randomPointInBox3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/readme.txt trunk/octave-forge/main/geometry/matGeom_raw/geom3d/recenterTransform3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/revolutionSurface.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/rotation3dAxisAndAngle.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/rotation3dToEulerAngles.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/rotationOx.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/rotationOy.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/rotationOz.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/scale3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/scaling3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/sph2cart2.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/sph2cart2d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/spheres.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/sphericalAngle.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/surfaceCurvature.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/transformLine3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/transformPoint3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/transformVector3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/transforms3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/translation3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/triangleArea3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/vecnorm3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/vectorAngle3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/vectorNorm3d.m trunk/octave-forge/main/geometry/matGeom_raw/geom3d/vectors3d.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/ trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/Contents.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/changelog.txt trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/checkMeshAdjacentFaces.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/clipConvexPolyhedronHP.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/clipMeshVertices.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/computeMeshEdges.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/createCube.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/createCubeOctahedron.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/createDodecahedron.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/createIcosahedron.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/createMengerSponge.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/createOctahedron.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/createRhombododecahedron.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/createSoccerBall.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/createTetrahedron.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/createTetrakaidecahedron.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/drawFaceNormals.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/drawMesh.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/drawPolyhedra.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/drawPolyhedron.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/faceCentroids.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/faceNormal.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/meshDihedralAngles.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/meshEdgeFaces.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/meshEdgeLength.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/meshFace.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/meshReduce.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/meshSurfaceArea.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/minConvexHull.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/polyhedra.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/polyhedronMeanBreadth.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/polyhedronNormalAngle.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/polyhedronSlice.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/private/ trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/private/formatMeshOutput.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/private/parseMeshData.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/steinerPolytope.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/triangulateFaces.m trunk/octave-forge/main/geometry/matGeom_raw/meshes3d/trimeshSurfaceArea.m Added: trunk/octave-forge/main/geometry/DESCRIPTION =================================================================== --- trunk/octave-forge/main/geometry/DESCRIPTION (rev 0) +++ trunk/octave-forge/main/geometry/DESCRIPTION 2011-10-21 20:24:00 UTC (rev 8831) @@ -0,0 +1,11 @@ +Name: Geometry +Version: 1.2.0 +Date: 2011-10-21 +Author: David Legland <dav...@gr...>, Juan Pablo Carbajal <car...@if...> +Maintainer: Juan Pablo Carbajal <car...@if...> +Title: Computational Geometry +Description: Library for geometric computing extending MatGeom functions. Useful to create, transform, manipulate and display geometric primitives. +Depends: octave (>= 3.4.0) +Autoload: no +License: GPL version 3 and BSD (see files) +Url: http://octave.sf.net, http://matgeom.sf.net Added: trunk/octave-forge/main/geometry/doc/NEWS =================================================================== --- trunk/octave-forge/main/geometry/doc/NEWS (rev 0) +++ trunk/octave-forge/main/geometry/doc/NEWS 2011-10-21 20:24:00 UTC (rev 8831) @@ -0,0 +1,161 @@ +Summary of important user-visible changes for releases of the geometry package + +=============================================================================== +geometry-1.0.0 Release Date: 2011-09-26 Release Manager: Juan Pablo Carbajal +=============================================================================== + +** First official release. + +=============================================================================== +geometry-1.0.1 Release Date: 2011-09-27 Release Manager: Juan Pablo Carbajal +=============================================================================== + +Improvements to the docstrings of all functions. + +=============================================================================== +geometry-1.1 Release Date: 2011-10-04 Release Manager: Juan Pablo Carbajal +=============================================================================== + +* Starting to add geom2d from matGeom +angle2Points.m +angle3Points.m +angleAbsDiff.m +angleDiff.m +angles2d.m +angleSort.m +createLine.m +deg2rad.m +edgeAngle.m +lineAngle.m +normalizeAngle.m +rad2deg.m +vectorAngle.m + +=============================================================================== +geometry-1.1.1 Release Date: 2011-10-06 Release Manager: Juan Pablo Carbajal +=============================================================================== + +* Continue to add geom2d from matGeom (boxes and clips) + cbezier2poly.m + boxes2d.m + clipEdge.m + clipLine.m + clipPoints.m + drawBezierCurve.m + drawBox.m + clipRay.m + intersectBoxes.m + intersectLines.m + linePosition.m + mergeBoxes.m + randomPointInBox.m + drawLine.m + +=============================================================================== +geometry-1.1.2 Release Date: 2011-10-09 Release Manager: Juan Pablo Carbajal +=============================================================================== + +* Continue to add geom2d from matGeom (rays and vectors) + createRay.m + drawEdge.m + drawRay.m + isParallel.m + isPerpendicular.m + isPointOnRay.m + normalizeVector.m + rays2d.m + rotateVector.m + transformVector.m + vectorNorm.m + vectors2d.m + +=============================================================================== +geometry-1.1.3 Release Date: 2011-10-13 Release Manager: Juan Pablo Carbajal +=============================================================================== + +* Continue to add geom2d from matGeom (transforms and points2d) + createBasisTransform.m + createHomothecy.m + createLineReflection.m + createRotation.m + createScaling.m + createTranslation.m + transformPoint.m + transforms2d.m + fitAffineTransform2d.m + transformEdge.m + transformLine.m + centroid.m + distancePoints.m + midPoint.m + polarPoint.m + drawPoint.m + isCounterClockwise.m + minDistancePoints.m + pointOnLine.m + points2d.m + intersectLineEdge.m + isPointOnEdge.m + +=============================================================================== +geometry-1.2 Release Date: 2011-10-xx Release Manager: Juan Pablo Carbajal +=============================================================================== + +* All geom2d added + createCircle.m + createDirectedCircle.m + createEdge.m + medianLine.m + Contents.m + bisector.m + cartesianLine.m + drawArrow.m + edges2d.m + lines2d.m + orthogonalLine.m + parallelLine.m + projPointOnLine.m + drawCenteredEdge.m + drawCircle.m + drawCircleArc.m + drawEllipse.m + drawEllipseArc.m + drawLabels.m + drawOrientedBox.m + drawParabola.m + drawRect.m + drawShape.m + circles2d.m + ellipses2d.m + createVector.m + inertiaEllipse.m + changelog.txt + readme.txt + hexagonalGrid.m + squareGrid.m + triangleGrid.m + intersectCircles.m + intersectEdges.m + intersectLineCircle.m + isLeftOriented.m + isPointInCircle.m + isPointInEllipse.m + isPointOnCircle.m + isPointOnLine.m + edgeLength.m + edgePosition.m + edgeToLine.m + circleArcAsCurve.m + circleAsPolygon.m + crackPattern.m + crackPattern2.m + distancePointEdge.m + distancePointLine.m + ellipseAsPolygon.m + enclosingCircle.m + radicalAxis.m + reverseEdge.m + reverseLine.m + +=============================================================================== + Added: trunk/octave-forge/main/geometry/inst/geom2d/Contents.m =================================================================== --- trunk/octave-forge/main/geometry/inst/geom2d/Contents.m (rev 0) +++ trunk/octave-forge/main/geometry/inst/geom2d/Contents.m 2011-10-21 20:24:00 UTC (rev 8831) @@ -0,0 +1,230 @@ +%% Copyright (c) 2011, INRA +%% 2007-2011, David Legland <dav...@gr...> +%% 2011 Adapted to Octave by Juan Pablo Carbajal <car...@if...> +%% +%% All rights reserved. +%% (simplified BSD License) +%% +%% Redistribution and use in source and binary forms, with or without +%% modification, are permitted provided that the following conditions are met: +%% +%% 1. Redistributions of source code must retain the above copyright notice, this +%% list of conditions and the following disclaimer. +%% +%% 2. Redistributions in binary form must reproduce the above copyright notice, +%% this list of conditions and the following disclaimer in the documentation +%% and/or other materials provided with the distribution. +%% +%% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +%% AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +%% IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +%% ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +%% LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +%% CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +%% SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +%% INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +%% CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +%% ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +%% POSSIBILITY OF SUCH DAMAGE. +%% +%% The views and conclusions contained in the software and documentation are +%% those of the authors and should not be interpreted as representing official +%% policies, either expressed or implied, of copyright holder. + +%% -*- texinfo -*- +%% @deftypefn {Function File} Contents () +%% GEOM2D Geometry 2D Toolbox +%% Version 1.0 21-Mar-2011 . +%% +%% Library to handle and visualize geometric primitives such as points, +%% lines, circles and ellipses, polygons... +%% +%% The goal is to provide a low-level library for manipulating geometrical +%% primitives, making easier the development of more complex geometric +%% algorithms. +%% +%% Most functions works for planar shapes, but some ones have been +%% extended to 3D or to any dimension. +%% +%% Points +%% points2d - Description of functions operating on points +%% clipPoints - Clip a set of points by a box +%% centroid - Compute centroid (center of mass) of a set of points +%% midPoint - Middle point of two points or of an edge +%% isCounterClockwise - Compute relative orientation of 3 points +%% polarPoint - Create a point from polar coordinates (rho + theta) +%% angle2Points - Compute horizontal angle between 2 points +%% angle3Points - Compute oriented angle made by 3 points +%% angleSort - Sort points in the plane according to their angle to origin +%% distancePoints - Compute distance between two points +%% minDistancePoints - Minimal distance between several points +%% transformPoint - Transform a point with an affine transform +%% drawPoint - Draw the point on the axis. +%% +%% Vectors +%% vectors2d - Description of functions operating on plane vectors +%% createVector - Create a vector from two points +%% vectorNorm - Compute norm of a vector, or of a set of vectors +%% vectorAngle - Angle of a vector, or between 2 vectors +%% normalizeVector - Normalize a vector to have norm equal to 1 +%% isPerpendicular - Check orthogonality of two vectors +%% isParallel - Check parallelism of two vectors +%% transformVector - Transform a vector with an affine transform +%% rotateVector - Rotate a vector by a given angle +%% +%% Straight lines +%% lines2d - Description of functions operating on planar lines +%% createLine - Create a straight line from 2 points, or from other inputs +%% medianLine - Create a median line between two points +%% cartesianLine - Create a straight line from cartesian equation coefficients +%% orthogonalLine - Create a line orthogonal to another one. +%% parallelLine - Create a line parallel to another one. +%% intersectLines - Return all intersection points of N lines in 2D +%% lineAngle - Computes angle between two straight lines +%% linePosition - Position of a point on a line +%% lineFit - Fit a straight line to a set of points +%% clipLine - Clip a line with a box +%% reverseLine - Return same line but with opposite orientation +%% transformLine - Transform a line with an affine transform +%% drawLine - Draw the line on the current axis +%% +%% Edges (line segments between 2 points) +%% edges2d - Description of functions operating on planar edges +%% createEdge - Create an edge between two points, or from a line +%% edgeToLine - Convert an edge to a straight line +%% edgeAngle - Return angle of edge +%% edgeLength - Return length of an edge +%% midPoint - Middle point of two points or of an edge +%% edgePosition - Return position of a point on an edge +%% clipEdge - Clip an edge with a rectangular box +%% reverseEdge - Intervert the source and target vertices of edge +%% intersectEdges - Return all intersections between two set of edges +%% intersectLineEdge - Return intersection between a line and an edge +%% transformEdge - Transform an edge with an affine transform +%% drawEdge - Draw an edge given by 2 points +%% drawCenteredEdge - Draw an edge centered on a point +%% +%% Rays +%% rays2d - Description of functions operating on planar rays +%% createRay - Create a ray (half-line), from various inputs +%% bisector - Return the bisector of two lines, or 3 points +%% clipRay - Clip a ray with a box +%% drawRay - Draw a ray on the current axis +%% +%% Relations between points and lines +%% distancePointEdge - Minimum distance between a point and an edge +%% distancePointLine - Minimum distance between a point and a line +%% projPointOnLine - Project of a point orthogonally onto a line +%% pointOnLine - Create a point on a line at a given position on the line +%% isPointOnLine - Test if a point belongs to a line +%% isPointOnEdge - Test if a point belongs to an edge +%% isPointOnRay - Test if a point belongs to a ray +%% isLeftOriented - Test if a point is on the left side of a line +%% +%% Circles +%% circles2d - Description of functions operating on circles +%% createCircle - Create a circle from 2 or 3 points +%% createDirectedCircle - Create a directed circle +%% intersectCircles - Intersection points of two circles +%% intersectLineCircle - Intersection point(s) of a line and a circle +%% circleAsPolygon - Convert a circle into a series of points +%% circleArcAsCurve - Convert a circle arc into a series of points +%% isPointInCircle - Test if a point is located inside a given circle +%% isPointOnCircle - Test if a point is located on a given circle. +%% enclosingCircle - Find the minimum circle enclosing a set of points. +%% radicalAxis - Compute the radical axis (or radical line) of 2 circles +%% drawCircle - Draw a circle on the current axis +%% drawCircleArc - Draw a circle arc on the current axis +%% +%% Ellipses +%% ellipses2d - Description of functions operating on ellipses +%% inertiaEllipse - Inertia ellipse of a set of points +%% isPointInEllipse - Check if a point is located inside a given ellipse +%% ellipseAsPolygon - Convert an ellipse into a series of points +%% drawEllipse - Draw an ellipse on the current axis +%% drawEllipseArc - Draw an ellipse arc on the current axis +%% +%% Geometric transforms +%% transforms2d - Description of functions operating on transforms +%% createTranslation - Create the 3*3 matrix of a translation +%% createRotation - Create the 3*3 matrix of a rotation +%% createScaling - Create the 3*3 matrix of a scaling in 2 dimensions +%% createHomothecy - Create the the 3x3 matrix of an homothetic transform +%% createBasisTransform - Compute matrix for transforming a basis into another basis +%% createLineReflection - Create the the 3x3 matrix of a line reflection +%% fitAffineTransform2d - Fit an affine transform using two point sets +%% +%% Angles +%% angles2d - Description of functions for manipulating angles +%% normalizeAngle - Normalize an angle value within a 2*PI interval +%% angleAbsDiff - Absolute difference between two angles +%% angleDiff - Difference between two angles +%% deg2rad - Convert angle from degrees to radians +%% rad2deg - Convert angle from radians to degrees +%% +%% Boxes +%% boxes2d - Description of functions operating on bounding boxes +%% intersectBoxes - Intersection of two bounding boxes +%% mergeBoxes - Merge two boxes, by computing their greatest extent +%% randomPointInBox - Generate random point within a box +%% drawBox - Draw a box defined by coordinate extents +%% +%% Various drawing functions +%% drawBezierCurve - Draw a cubic bezier curve defined by 4 control points +%% drawParabola - Draw a parabola on the current axis +%% drawOrientedBox - Draw centered oriented rectangle +%% drawRect - Draw rectangle on the current axis +%% drawArrow - Draw an arrow on the current axis +%% drawLabels - Draw labels at specified positions +%% drawShape - Draw various types of shapes (circles, polygons...) +%% +%% Other shapes +%% squareGrid - Generate equally spaces points in plane. +%% hexagonalGrid - Generate hexagonal grid of points in the plane. +%% triangleGrid - Generate triangular grid of points in the plane. +%% crackPattern - Create a (bounded) crack pattern tessellation +%% crackPattern2 - Create a (bounded) crack pattern tessellation +%% +%% +%% Credits: +%% * function 'enclosingCircle' rewritten from a file from Yazan Ahed +%% (ya...@gm...), available on Matlab File Exchange +%% +%% ----- +%% Author: David Legland +%% e-mail: dav...@gr... +%% Created: 2005-11-07 +%% Copyright INRA - Cepia Software Platform. +%% Homepage: http://matgeom.sourceforge.net/ +%% http://www.pfl-cepia.inra.fr/index.php?page=geom2d +%% @end deftypefn + + help('Contents'); + + + %% Deprecated functions + + % createMedian - create a median line + % minDistance - compute minimum distance between a point and a set of points + % homothecy - create a homothecy as an affine transform + % rotation - return 3*3 matrix of a rotation + % translation - return 3*3 matrix of a translation + % scaling - return 3*3 matrix of a scaling in 2 dimensions + % lineSymmetry - create line symmetry as 2D affine transform + % vecnorm - compute norm of vector or of set of vectors + % normalize - normalize a vector + % onCircle - test if a point is located on a given circle. + % inCircle - test if a point is located inside a given circle. + % onEdge - test if a point belongs to an edge + % onLine - test if a point belongs to a line + % onRay - test if a point belongs to a ray + % invertLine - return same line but with opposite orientation + % clipLineRect - clip a line with a polygon + % formatAngle - Ensure an angle value is comprised between 0 and 2*PI + + + %% Others... + % drawRect2 - Draw centered rectangle on the current axis + +endfunction + Added: trunk/octave-forge/main/geometry/inst/geom2d/angle2Points.m =================================================================== --- trunk/octave-forge/main/geometry/inst/geom2d/angle2Points.m (rev 0) +++ trunk/octave-forge/main/geometry/inst/geom2d/angle2Points.m 2011-10-21 20:24:00 UTC (rev 8831) @@ -0,0 +1,109 @@ +%% Copyright (c) 2011, INRA +%% 2007-2011, David Legland <dav...@gr...> +%% 2011 Adapted to Octave by Juan Pablo Carbajal <car...@if...> +%% +%% All rights reserved. +%% (simplified BSD License) +%% +%% Redistribution and use in source and binary forms, with or without +%% modification, are permitted provided that the following conditions are met: +%% +%% 1. Redistributions of source code must retain the above copyright notice, this +%% list of conditions and the following disclaimer. +%% +%% 2. Redistributions in binary form must reproduce the above copyright notice, +%% this list of conditions and the following disclaimer in the documentation +%% and/or other materials provided with the distribution. +%% +%% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +%% AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +%% IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +%% ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +%% LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +%% CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +%% SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +%% INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +%% CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +%% ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +%% POSSIBILITY OF SUCH DAMAGE. +%% +%% The views and conclusions contained in the software and documentation are +%% those of the authors and should not be interpreted as representing official +%% policies, either expressed or implied, of copyright holder. + +%% -*- texinfo -*- +%% @deftypefn {Function File} {@var{alpha} =} angle2Points (@var{p1}, @var{p2}) +%% Compute horizontal angle between 2 points +%% +%% @var{p1} and @var{p2} are either [1x2] arrays, or [Nx2] arrays, in this case +%% @var{alpha} is a [Nx1] array. The angle computed is the horizontal angle of +%% the line (@var{p1},@var{p2}). +%% +%% Result is always given in radians, between 0 and 2*pi. +%% +%% @seealso{points2d, angles2d, angle3points, normalizeAngle, vectorAngle} +%% @end deftypefn + +function theta = angle2Points(varargin) + + % process input arguments + if length(varargin)==2 + p1 = varargin{1}; + p2 = varargin{2}; + elseif length(varargin)==1 + var = varargin{1}; + p1 = var(1,:); + p2 = var(2,:); + end + + % ensure data have correct size + n1 = size(p1, 1); + n2 = size(p2, 1); + if n1~=n2 && min(n1, n2)>1 + error('angle2Points: wrong size for inputs'); + end + + % angle of line (P2 P1), between 0 and 2*pi. + dp = bsxfun(@minus, p2, p1); + theta = mod(atan2(dp(:,2), dp(:,1)) + 2*pi, 2*pi); + +endfunction + +%!test +%! % all points inside window, possibly touching edges +%! p1 = [0 0]; +%! p2 = [10 0]; +%! angle_ = angle2Points (p1, p2); +%! assert (angle_,0,1e-6); +%! angle_ = angle2Points (p2, p1); +%! assert (angle_,pi,1e-6); + + +%!test +%! % all points inside window, possibly touching edges +%! p1 = [0 0]; +%! p2 = [0 10]; +%! angle_ = angle2Points (p1, p2); +%! assert (pi/2, angle_,1e-6); +%! angle_ = angle2Points (p2, p1); +%! assert (3*pi/2, angle_,1e-6); + +%!test +%! % all points inside window, possibly touching edges +%! p1 = [0 0;0 0;0 0;0 0]; +%! p2 = [10 0;10 10;0 10;-10 10]; +%! angle_ = angle2Points (p1, p2); +%! assert (size (p1, 1), size (angle_, 1)); +%! res = [0;pi/4;pi/2;3*pi/4]; +%! assert (res, angle_, 1e-6); + +%!test +%! % all points inside window, possibly touching edges +%! p1 = [0 0]; +%! p2 = [10 0;10 10;0 10;-10 10]; +%! angle_ = angle2Points (p1, p2); +%! assert(size (p2, 1), size (angle_, 1)); +%! res = [0;pi/4;pi/2;3*pi/4]; +%! assert(res, angle_,1e-6); + + Added: trunk/octave-forge/main/geometry/inst/geom2d/angle3Points.m =================================================================== --- trunk/octave-forge/main/geometry/inst/geom2d/angle3Points.m (rev 0) +++ trunk/octave-forge/main/geometry/inst/geom2d/angle3Points.m 2011-10-21 20:24:00 UTC (rev 8831) @@ -0,0 +1,82 @@ +%% Copyright (c) 2011, INRA +%% 2004-2011, David Legland <dav...@gr...> +%% 2011 Adapted to Octave by Juan Pablo Carbajal <car...@if...> +%% +%% All rights reserved. +%% (simplified BSD License) +%% +%% Redistribution and use in source and binary forms, with or without +%% modification, are permitted provided that the following conditions are met: +%% +%% 1. Redistributions of source code must retain the above copyright notice, this +%% list of conditions and the following disclaimer. +%% +%% 2. Redistributions in binary form must reproduce the above copyright notice, +%% this list of conditions and the following disclaimer in the documentation +%% and/or other materials provided with the distribution. +%% +%% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +%% AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +%% IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +%% ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +%% LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +%% CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +%% SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +%% INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +%% CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +%% ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +%% POSSIBILITY OF SUCH DAMAGE. +%% +%% The views and conclusions contained in the software and documentation are +%% those of the authors and should not be interpreted as representing official +%% policies, either expressed or implied, of copyright holder. + +%% -*- texinfo -*- +%% @deftypefn {Function File} {@var{alpha} =} angle3Points (@var{p1}, @var{p2}, @var{p3}) +%% Computes the angle between the points @var{p1}, @var{p2} and @var{p3}. +%% +%% @var{p1}, @var{p2} and @var{p3} are either [1x2] arrays, or [Nx2] arrays, in this case +%% @var{alpha} is a [Nx1] array. The angle computed is the directed angle between line +%% (@var{p2}@var{p1}) and line (@var{p2}@var{p3}). +%% +%% Result is always given in radians, between 0 and 2*pi. +%% +%% @seealso{points2d, angles2d, angle2points} +%% @end deftypefn + +function theta = angle3Points(varargin) + + if length(varargin)==3 + p1 = varargin{1}; + p2 = varargin{2}; + p3 = varargin{3}; + elseif length(varargin)==1 + var = varargin{1}; + p1 = var(1,:); + p2 = var(2,:); + p3 = var(3,:); + end + + % angle line (P2 P1) + theta = lineAngle(createLine(p2, p1), createLine(p2, p3)); + +endfunction + +%!test +%! % all points inside window, possibly touching edges +%! p1 = [10 0]; +%! p2 = [0 0]; +%! p3 = [0 10]; +%! angle_ = angle3Points(p1, p2, p3); +%! assert(pi/2, angle_,1e-6); +%! angle_ = angle3Points([p1; p2; p3]); +%! assert(pi/2, angle_, 1e-6); + +%!test +%! p1 = [10 0; 20 0]; +%! p2 = [0 0;0 0]; +%! p3 = [0 10; 0 20]; +%! angle_ = angle3Points(p1, p2, p3); +%! assert(2, size(angle_, 1)); +%! assert([pi/2;pi/2], angle_, 1e-6); + Added: trunk/octave-forge/main/geometry/inst/geom2d/angleAbsDiff.m =================================================================== --- trunk/octave-forge/main/geometry/inst/geom2d/angleAbsDiff.m (rev 0) +++ trunk/octave-forge/main/geometry/inst/geom2d/angleAbsDiff.m 2011-10-21 20:24:00 UTC (rev 8831) @@ -0,0 +1,66 @@ +%% Copyright (c) 2011, INRA +%% 2011, David Legland <dav...@gr...> +%% 2011 Adapted to Octave by Juan Pablo Carbajal <car...@if...> +%% +%% All rights reserved. +%% (simplified BSD License) +%% +%% Redistribution and use in source and binary forms, with or without +%% modification, are permitted provided that the following conditions are met: +%% +%% 1. Redistributions of source code must retain the above copyright notice, this +%% list of conditions and the following disclaimer. +%% +%% 2. Redistributions in binary form must reproduce the above copyright notice, +%% this list of conditions and the following disclaimer in the documentation +%% and/or other materials provided with the distribution. +%% +%% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +%% AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +%% IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +%% ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +%% LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +%% CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +%% SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +%% INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +%% CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +%% ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +%% POSSIBILITY OF SUCH DAMAGE. +%% +%% The views and conclusions contained in the software and documentation are +%% those of the authors and should not be interpreted as representing official +%% policies, either expressed or implied, of copyright holder. + +%% -*- texinfo -*- +%% @deftypefn {Function File} {@var{dif} =} angleAbsDiff (@var{angle1}, @var{angle2}) +%% Computes the absolute angular difference between two angles in radians. +%% The result is comprised between 0 and pi. +%% +%% @example +%% A = angleAbsDiff(pi/2, pi/3) +%% A = +%% 0.5236 % equal to pi/6 +%% @end example +%% +%% @seealso{angles2d, angleDiff} +%% @end deftypefn + +function dif = angleAbsDiff(angle1, angle2) + + % first, normalization + angle1 = normalizeAngle(angle1); + angle2 = normalizeAngle(angle2); + + % compute difference and normalize + dif = normalizeAngle(angle1 - angle2); + dif = min(dif, 2*pi - dif); + +endfunction + +%!shared xp +%! xp = pi/2; +%!assert (xp, angleAbsDiff (pi/2, 0), 1e-6); +%!assert (xp, angleAbsDiff (0, pi/2), 1e-6); +%!assert (xp, angleAbsDiff (0, 3*pi/2), 1e-6); +%!assert (xp, angleAbsDiff (3*pi/2, 0), 1e-6); + Added: trunk/octave-forge/main/geometry/inst/geom2d/angleDiff.m =================================================================== --- trunk/octave-forge/main/geometry/inst/geom2d/angleDiff.m (rev 0) +++ trunk/octave-forge/main/geometry/inst/geom2d/angleDiff.m 2011-10-21 20:24:00 UTC (rev 8831) @@ -0,0 +1,76 @@ +%% Copyright (c) 2011, INRA +%% 2011, David Legland <dav...@gr...> +%% 2011 Adapted to Octave by Juan Pablo Carbajal <car...@if...> +%% +%% All rights reserved. +%% (simplified BSD License) +%% +%% Redistribution and use in source and binary forms, with or without +%% modification, are permitted provided that the following conditions are met: +%% +%% 1. Redistributions of source code must retain the above copyright notice, this +%% list of conditions and the following disclaimer. +%% +%% 2. Redistributions in binary form must reproduce the above copyright notice, +%% this list of conditions and the following disclaimer in the documentation +%% and/or other materials provided with the distribution. +%% +%% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +%% AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +%% IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +%% ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +%% LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +%% CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +%% SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +%% INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +%% CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +%% ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +%% POSSIBILITY OF SUCH DAMAGE. +%% +%% The views and conclusions contained in the software and documentation are +%% those of the authors and should not be interpreted as representing official +%% policies, either expressed or implied, of copyright holder. + +%% -*- texinfo -*- +%% @deftypefn {Function File} {@var{dif} =} angleDiff (@var{angle1}, @var{angle2}) +%% Difference between two angles +%% +%% Computes the signed angular difference between two angles in radians. +%% The result is comprised between -PI and +PI. +%% +%% Example +%% A = angleDiff(-pi/4, pi/4) +%% A = +%% 1.5708 % equal to pi/2 +%% A = angleDiff(pi/4, -pi/4) +%% A = +%% -1.5708 % equal to -pi/2 +%% +%% @seealso{angles2d, angleAbsDiff} +%% @end deftypefn + +function dif = angleDiff(angle1, angle2) + + % first, normalization + angle1 = normalizeAngle(angle1); + angle2 = normalizeAngle(angle2); + + % compute difference and normalize in [-pi pi] + dif = normalizeAngle(angle2 - angle1, 0); +endfunction + +%!test +%! dif = angleDiff(0, pi/2); +%! assert (pi/2, dif, 1e-6); + +%!test +%! dif = angleDiff(pi/2, 0); +%! assert (-pi/2, dif, 1e-6); + +%!test +%! dif = angleDiff(0, 3*pi/2); +%! assert (-pi/2, dif, 1e-6); + +%!test +%! dif = angleDiff(3*pi/2, 0); +%! assert (pi/2, dif, 1e-6); Added: trunk/octave-forge/main/geometry/inst/geom2d/angleSort.m =================================================================== --- trunk/octave-forge/main/geometry/inst/geom2d/angleSort.m (rev 0) +++ trunk/octave-forge/main/geometry/inst/geom2d/angleSort.m 2011-10-21 20:24:00 UTC (rev 8831) @@ -0,0 +1,106 @@ +%% Copyright (c) 2011, INRA +%% 2005-2011, David Legland <dav...@gr...> +%% 2011 Adapted to Octave by Juan Pablo Carbajal <car...@if...> +%% +%% All rights reserved. +%% (simplified BSD License) +%% +%% Redistribution and use in source and binary forms, with or without +%% modification, are permitted provided that the following conditions are met: +%% +%% 1. Redistributions of source code must retain th... [truncated message content] |