From: <jpi...@us...> - 2012-09-19 22:10:47
|
Revision: 11055 http://octave.svn.sourceforge.net/octave/?rev=11055&view=rev Author: jpicarbajal Date: 2012-09-19 22:10:39 +0000 (Wed, 19 Sep 2012) Log Message: ----------- geometry: Ported all content files Added Paths: ----------- trunk/octave-forge/main/geometry/inst/geom3d/lines3d.m trunk/octave-forge/main/geometry/inst/geom3d/planes3d.m trunk/octave-forge/main/geometry/inst/geom3d/points3d.m trunk/octave-forge/main/geometry/inst/geom3d/polygons3d.m trunk/octave-forge/main/geometry/inst/geom3d/vectors3d.m trunk/octave-forge/main/geometry/inst/graphs/graphs_Contents.m trunk/octave-forge/main/geometry/inst/meshes3d/ trunk/octave-forge/main/geometry/inst/meshes3d/meshes3d_Contents.m Added: trunk/octave-forge/main/geometry/inst/geom3d/lines3d.m =================================================================== --- trunk/octave-forge/main/geometry/inst/geom3d/lines3d.m (rev 0) +++ trunk/octave-forge/main/geometry/inst/geom3d/lines3d.m 2012-09-19 22:10:39 UTC (rev 11055) @@ -0,0 +1,49 @@ +## Copyright (c) 2011, INRA +## 2004-2011, David Legland <dav...@gr...> +## 2012 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} lines3d () +##LINES3D Description of functions operating on 3D lines +## +## A 3D Line is represented by a 3D point (its origin) and a 3D vector +## (its direction): +## LINE = [X0 Y0 Z0 DX DY DZ]; +## +## @seealso{createLine3d, transformLine3d, distancePointLine3d, linePosition3d +## intersectLinePlane, distanceLines3d, clipLine3d, drawLine3d} +## @end deftypefn +function lines3d() + + help lines3d + +endfunction Added: trunk/octave-forge/main/geometry/inst/geom3d/planes3d.m =================================================================== --- trunk/octave-forge/main/geometry/inst/geom3d/planes3d.m (rev 0) +++ trunk/octave-forge/main/geometry/inst/geom3d/planes3d.m 2012-09-19 22:10:39 UTC (rev 11055) @@ -0,0 +1,51 @@ +## Copyright (c) 2011, INRA +## 2004-2011, David Legland <dav...@gr...> +## 2012 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} planes3d () +##PLANES3D Description of functions operating on 3D planes +## +## Planes are represented by a 3D point (the plane origin) and 2 direction +## vectors, which should not be colinear. +## PLANE = [X0 Y0 Z0 DX1 DY1 DZ1 DX2 DY2 DZ2]; +## +## @seealso{createPlane, medianPlane, normalizePlane, +## planeNormal, planePosition, dihedralAngle, +## intersectPlanes, projPointOnPlane, isBelowPlane, +## intersectLinePlane, intersectEdgePlane, distancePointPlane, drawPlane3d} +## @end deftypefn +function planes3d(varargin) + + help planes3d + +endfunction Added: trunk/octave-forge/main/geometry/inst/geom3d/points3d.m =================================================================== --- trunk/octave-forge/main/geometry/inst/geom3d/points3d.m (rev 0) +++ trunk/octave-forge/main/geometry/inst/geom3d/points3d.m 2012-09-19 22:10:39 UTC (rev 11055) @@ -0,0 +1,50 @@ +## Copyright (c) 2011, INRA +## 2004-2011, David Legland <dav...@gr...> +## 2012 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} points3d () +##POINTS3D Description of functions operating on 3D points +## +## Points are represented by their 3 Cartesian coordinates: +## P = [X Y Z]; +## +## Arrays of points consist in N*3 arrays, each row being a point. +## +## @seealso{isCoplanar, distancePoints, anglePoints3d, angleSort3d, sphericalAngle, +## sph2cart2, cart2sph2, cart2cyl, cyl2cart, transformPoint3d, clipPoints3d} +## @end deftypefn +function points3d() + + help points3d + +endfunction Added: trunk/octave-forge/main/geometry/inst/geom3d/polygons3d.m =================================================================== --- trunk/octave-forge/main/geometry/inst/geom3d/polygons3d.m (rev 0) +++ trunk/octave-forge/main/geometry/inst/geom3d/polygons3d.m 2012-09-19 22:10:39 UTC (rev 11055) @@ -0,0 +1,51 @@ +## Copyright (c) 2011, INRA +## 2004-2011, David Legland <dav...@gr...> +## 2012 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} polygons3d () +## POLYGONS3D Description of functions operating on 3D polygons +## +## A 3D polygon is simply a set of 3D points (called vertices) which are +## assumed to be located in the same plane. +## Several functions are provided for computing basic geometrical +## parameters (centroid, angles), or intersections with lines or planes. +## +## @seealso{polygon3dNormalAngle, polygonCentroid3d, clipConvexPolygon3dHP +## intersectLinePolygon3d, intersectLineTriangle3d, intersectRayPolygon3d +## drawPolygon3d, drawPolyline3d, fillPolygon3d} +## @end deftypefn +function polygons3d() + + help polygons3d + +endfunction Added: trunk/octave-forge/main/geometry/inst/geom3d/vectors3d.m =================================================================== --- trunk/octave-forge/main/geometry/inst/geom3d/vectors3d.m (rev 0) +++ trunk/octave-forge/main/geometry/inst/geom3d/vectors3d.m 2012-09-19 22:10:39 UTC (rev 11055) @@ -0,0 +1,53 @@ +## Copyright (c) 2011, INRA +## 2004-2011, David Legland <dav...@gr...> +## 2012 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} vectors3d () +##VECTORS3D Description of functions operating on 3D vectors +## +## Vectors are represented by their 3 Cartesian coordinates: +## V = [VX VY VZ]; +## +## List of vectors are represented by N*3 arrays, with the coordinates of +## each vector on a row. +## +## +## @seealso{vectorNorm3d, normalizeVector3d, vectorAngle3d isParallel3d, +## isPerpendicular3d, createTranslation3d} +## @end deftypefn + +function vectors3d(varargin) + + help vectors3d + +endfunction Added: trunk/octave-forge/main/geometry/inst/graphs/graphs_Contents.m =================================================================== --- trunk/octave-forge/main/geometry/inst/graphs/graphs_Contents.m (rev 0) +++ trunk/octave-forge/main/geometry/inst/graphs/graphs_Contents.m 2012-09-19 22:10:39 UTC (rev 11055) @@ -0,0 +1,142 @@ +## Copyright (C) 2011 David Legland <dav...@gr...> +## All rights reserved. +## +## 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 AUTHOR 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. + +## -*- texinfo -*- +## @deftypefn {Function File} graphs_Contents () +## GRAPHS Simple Toolbox for manipulating Geometric Graphs +## Version 0.5 11-Apr-2010 . +## +## The aim of this package is to provides functions to easily create, +## modify and display geometric graphs (geometric in a sense position +## of vertices is kept in memory). +## +## Graph structure is represented by at least two arrays: +## * NODES, which contains coordinates of each vertex +## * EDGES, which contains indices of start and end vertex. +## +## Others arrays may sometimes be used: +## * FACES, which contains indices of vertices of each face (either a +## double array, or a cell array) +## * CELLS, which contains indices of faces of each cell. +## +## An alternative representation is to use a structure, with fields: +## * edges +## * faces +## * cells +## corresponding to the data described above. +## +## Note that topological description of 2D graph is entirely contained in +## EDGES array, and that NODES array is used only to display graph +## +## Caution: this type of data structure is easy to create and to manage, +## but may be very inefficient for some algorithms. +## +## Graphs are usually considered as non-oriented in this package. +## +## +## Graph creation +## knnGraph - Create the k-nearest neighbors graph of a set of points +## delaunayGraph - Graph associated to Delaunay triangulation of input points +## euclideanMST - Build euclidean minimal spanning tree of a set of points +## prim_mst - Minimal spanning tree by Prim's algorithm +## +## Create graph from images +## imageGraph - Create equivalent graph of a binary image +## boundaryGraph - Get boundary of image as a graph +## gcontour2d - Creates contour graph of a 2D binary image. +## gcontour3d - Create contour graph of a 3D binary image. +## vectorize - Transform a binary skeleton into a graph (nodes and edges) +## +## Graph information +## grNodeDegree - Degree of a node in a (undirected) graph +## grNodeInnerDegree - Inner degree of a node in a graph +## grNodeOuterDegree - Outer degree of a node in a graph +## grNeighborNodes - Find adjacent nodes of a given node +## grNeighborEdges - Find adjacent edges of a given node +## grOppositeNode - Return opposite node in an edge +## grLabel - Associate a label to each connected component of the graph +## +## Graph management (low level operations) +## grRemoveNode - Remove a node in a graph +## grRemoveNodes - Remove several nodes in a graph +## grRemoveEdge - Remove an edge in a graph. +## grRemoveEdges - Remove several edges from a graph +## +## Graph processing (general applications) +## mergeGraphs - Merge two graphs, by adding nodes, edges and faces lists. +## grMergeNodes - Merge two (or more) nodes in a graph. +## grMergeMultipleNodes - Simplify a graph by merging multiple nodes +## grMergeMultipleEdges - Remove all edges sharing the same extremities +## grSimplifyBranches - Replace branches of a graph by single edges +## +## Filtering operations on Graph +## grMean - Compute mean from neihgbours +## grMedian - Compute median from neihgbours +## grDilate - Morphological dilation on graph +## grErode - Morphological erosion on graph +## grClose - Morphological closing on graph +## grOpen - Morphological opening on graph +## +## Geodesic operations +## grPropagateDistance - Propagates distances from a vertex to other vertices +## grVertexEccentricity - Eccentricity of vertices in the graph +## graphDiameter - Diameter of a graph +## graphPeripheralVertices - Peripheral vertices of a graph +## graphCenter - Center of a graph +## graphRadius - Radius of a graph +## grFindGeodesicPath - Find a geodesic path between two nodes in the graph +## grFindMaximalLengthPath - Find a path that maximizes sum of edge weights +## +## Operations for geometric graphs +## grMergeNodeClusters - Merge cluster of connected nodes in a graph +## grMergeNodesMedian - Replace several nodes by their median coordinate +## clipGraph - Clip a graph with a rectangular area +## addSquareFace - Add a (square) face defined from its vertices to a graph +## grFaceToPolygon - Compute the polygon corresponding to a graph face +## graph2Contours - Convert a graph to a set of contour curves +## +## Voronoi Graphs +## voronoi2d - Compute a voronoi diagram as a graph structure +## boundedVoronoi2d - Return a bounded voronoi diagram as a graph structure +## centroidalVoronoi2d - Create a 2D Centroidal Voronoi Tesselation +## cvtUpdate - Update germs of a CVT with given points +## cvtIterate - Update germs of a CVT using random points with given density +## +## Graph display +## drawGraph - Draw a graph, given as a set of vertices and edges +## drawGraphEdges - Draw edges of a graph +## drawGraphFaces - Draw faces of a graph +## drawDigraph - Draw a directed graph, given as a set of vertices and edges +## drawDirectedEdges - Draw edges with arrow indicating direction +## drawEdgeLabels - Draw values associated to graph edges +## drawNodeLabels - Draw values associated to graph nodes +## drawSquareMesh - Draw a 3D square mesh given as a graph +## patchGraph - Transform 3D graph (mesh) into a patch handle +## +## @end deftypefn + +function graphs_Contents() + + help graphs_Contents + +endfunction Added: trunk/octave-forge/main/geometry/inst/meshes3d/meshes3d_Contents.m =================================================================== --- trunk/octave-forge/main/geometry/inst/meshes3d/meshes3d_Contents.m (rev 0) +++ trunk/octave-forge/main/geometry/inst/meshes3d/meshes3d_Contents.m 2012-09-19 22:10:39 UTC (rev 11055) @@ -0,0 +1,115 @@ +## Copyright (c) 2011, INRA +## 2004-2011, David Legland <dav...@gr...> +## 2012 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} meshes3d_Contents () +## MESHES3D 3D Surface Meshes +## Version 1.0 21-Mar-2011 . +## +## Creation, vizualization, and manipulation of 3D surface meshes or +## polyhedra. +## +## Meshes and Polyhedra are represented by a couple of variables {V, F}: +## V: Nv-by-3 array of vertices: [x1 y1 z1; ... ; xn yn zn]; +## F: is either a NF-by-3 or NF-by-4 array containing reference for +## vertices of each face, or a NF-by-1 cell array, where each cell is an +## array containing a variable number of node indices. +## For some functions, the array E of edges is needed. It consists in a +## NE-by-2 array containing indices of source and target vertices. +## +## The library provides function to create basic polyhedric meshes (the 5 +## platonic solids, plus few others), as well as functions to perform +## basic computations (surface area, normal angles, face centroids...). +## The 'MengerSponge' structure is an example of mesh that is not simply +## connected (multiple tunnels in the structure). +## +## The drawMesh function is mainly a wrapper to the Matlab 'patch' +## function, allowing passing arguments more quickly. +## +## Example +## % create a soccer ball mesh and display it +## [n e f] = createSoccerBall; +## drawMesh(n, f, 'faceColor', 'g', 'linewidth', 2); +## axis equal; +## +## +## General functions +## meshFace - Return the vertex indices of a face in a mesh +## computeMeshEdges - Computes edges array from face array +## meshEdgeFaces - Compute index of faces adjacent to each edge of a mesh +## faceCentroids - Compute centroids of a mesh faces +## faceNormal - Compute normal vector of faces in a 3D mesh +## +## Measures on meshes +## meshSurfaceArea - Surface area of a polyhedral mesh +## trimeshSurfaceArea - Surface area of a triangular mesh +## meshEdgeLength - Lengths of edges of a polygonal or polyhedral mesh +## meshDihedralAngles - Dihedral at edges of a polyhedal mesh +## polyhedronNormalAngle - Compute normal angle at a vertex of a 3D polyhedron +## polyhedronMeanBreadth - Mean breadth of a convex polyhedron +## +## Basic processing +## triangulateFaces - Convert face array to an array of triangular faces +## meshReduce - Merge coplanar faces of a polyhedral mesh +## minConvexHull - Return the unique minimal convex hull of a set of 3D points +## polyhedronSlice - Intersect a convex polyhedron with a plane. +## checkMeshAdjacentFaces - Check if adjacent faces of a mesh have similar orientation +## clipMeshVertices - Clip vertices of a surfacic mesh and remove outer faces +## clipConvexPolyhedronHP - Clip a convex polyhedron by a plane +## +## Typical polyhedra +## polyhedra - Index of classical polyhedral meshes +## createCube - Create a 3D mesh representing the unit cube +## createOctahedron - Create a 3D mesh representing an octahedron +## createCubeOctahedron - Create a 3D mesh representing a cube-octahedron +## createIcosahedron - Create a 3D mesh representing an Icosahedron. +## createDodecahedron - Create a 3D mesh representing a dodecahedron +## createTetrahedron - Create a 3D mesh representing a tetrahedron +## createRhombododecahedron - Create a 3D mesh representing a rhombododecahedron +## createTetrakaidecahedron - Create a 3D mesh representing a tetrakaidecahedron +## +## Less typical polyhedra +## createSoccerBall - Create a 3D mesh representing a soccer ball +## createMengerSponge - Create a cube with an inside cross removed +## steinerPolytope - Create a steiner polytope from a set of vectors +## +## Drawing functions +## drawFaceNormals - Draw normal vector of each face in a mesh +## drawMesh - Draw a 3D mesh defined by vertices and faces +## @end deftypefn + +function meshes3d_Contents () + + help meshes3d_Contents + +endfunction This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |