Woolz Image Processing Version 1.4.0
|
Generates a regular tetrahedral mesh for a 3D domain. More...
Data Structures | |
struct | _WlzMeshScanDElm |
Mesh scanning element. More... | |
struct | _WlzMeshScanItv |
Scan interval within an element. More... | |
struct | _WlzMeshScanWSp2D5 |
Defines | |
#define | IN_RECORD_MAX (1024) |
Typedefs | |
typedef struct _WlzMeshScanDElm | WlzMeshScanDElm |
typedef struct _WlzMeshScanItv | WlzMeshScanItv |
typedef struct _WlzMeshScanWSp2D5 | WlzMeshScanWSp2D5 |
Functions | |
double | WlzGeomTriangle2SnArea3 (WlzDVertex3 *a, int i, int j, int k) |
output the cut plane in VTK format to a file. | |
void | WlzEffWriteMeshTransform3DWithoutDisplacementVTK (FILE *fp, WlzMeshTransform3D *wmt3D) |
output the orginal mesh. | |
void | WlzEffWriteMeshTransform3DWithDisplacementVTK (FILE *fp, WlzMeshTransform3D *wmt3D) |
output the transformed mesh. | |
void | WlzEffWriteOriginalPlaneVTKByDis (FILE *fp, WlzMeshTransform2D5 *wmt2D5) |
output the orginal surface corresponding to the cut plane represented by the postion of the same mesh. | |
void | WlzEffWriteOriginalPlaneVTKByPos (FILE *fp, WlzMeshTransform2D5 *wmt2D5) |
output the cutted plane. | |
WlzErrorNum | write_Wlz2D5Mesh (FILE *fp, char *cstr, WlzMeshTransform2D5 *wmt2D5) |
Write 2D5 mesh for inspections. | |
WlzErrorNum | Write_WlzCutScanLines (FILE *fp, char *cstr, WlzMeshScanWSp2D5 *mSnWSp) |
Write the section view parameters in the bibtex style record using the bibFile library. | |
WlzErrorNum | WlzGetTransformedMesh (WlzMeshTransform3D *wmt3D, WlzBasisFnTransform *basisTr) |
Get a 3D mesh transfrom from a basis transform and a 3D mesh. | |
WlzObject * | WlzMeshTransformObj_3D (WlzObject *srcObj, WlzMeshTransform3D *wmt3D, WlzInterpolationType interp, WlzErrorNum *dstErr) |
WlzIBox3 | WlzMQ3DTransformBBoxI3 (WlzMeshTransform3D *wmt3D, WlzErrorNum *errNum) |
int | WlzIsSinglePointCutMesh (const WlzMeshTransform2D5 *wmt2D5) |
int | WlzNoAreaGreaterThanOne (const WlzMeshTransform2D5 *wmt2D5) |
void | WlzGet2D5Transform (const WlzMeshTransform3D *wmt3D, int cutPosition, WlzMeshTransform2D5 *wmt2D5, WlzErrorNum *dsterrNum) |
Creates a new plane domain from a given bounding box. | |
void | WlzInitializeWmt2D5 (WlzMeshTransform2D5 *wmt2D5) |
initialize the 2D5 mesh. | |
WlzErrorNum | read_WlzTiePoints (FILE *fp, int *nTiePP, WlzDVertex3 **vxVec01, WlzDVertex3 **vxVec11, const int ReadDisplacement) |
Get the index of the tetrahedrons which intersect with a giving z = constant plane. | |
WlzMeshTransform3D * | WlzTetrahedronMeshFromObj (WlzObject *wObjC, const WlzDBox3 bBoxS, const int numOfElemAlonX, const int numOfElemAlonY, const int numOfElemAlonZ, WlzErrorNum *errNums) |
WlzMeshTransform2D5 * | Wlz2D5TransformFromCut3Dmesh (double zConst, WlzMeshTransform3D *wmt3D, WlzErrorNum *dstErr) |
Get a 2D5 mesh from a transformed 3D mesh by cuting it into a plane. | |
WlzErrorNum | WlzTetrahedronProducerFromCube (int neighbourLeft, int neighbourRight, int neighbourBack, int neighbourFront, int neighbourDown, int neighbourUp, int nxmax, int nymax, int nzmax, int nx, int ny, int nz, int indexOfNextFirst, WlzMeshElem3D *elements) |
Divide a cuboid into six tetrahedral elements. | |
int | WlzIsoIntersectWithTetrahadronIndex (double zConst, const WlzMeshTransform3D *wmt3D, int *intersectIndex, WlzDVertex3 *planepoints, int **linkList, int *noRedundancyCutingNum, int *numTotalTrangularElem) |
Get the index of the tetrahedrons which intersect with a giving z = constant plane. | |
void | WlzMakeAffine3D4pointsTrFn (WlzDVertex3 sr0, WlzDVertex3 sr1, WlzDVertex3 sr2, WlzDVertex3 sr3, WlzDVertex3 targ0, WlzDVertex3 targ1, WlzDVertex3 targ2, WlzDVertex3 targ3, double **Affine3D4pointsTrFun) |
Get 3D Affine transformation from the nodes of a source tetrahedron and the nodes from a target tetrahedron. |
Generates a regular tetrahedral mesh for a 3D domain.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#define IN_RECORD_MAX (1024) |
Referenced by read_WlzTiePoints().
typedef struct _WlzMeshScanDElm WlzMeshScanDElm |
typedef struct _WlzMeshScanItv WlzMeshScanItv |
typedef struct _WlzMeshScanWSp2D5 WlzMeshScanWSp2D5 |
WlzObject * WlzMeshTransformObj_3D | ( | WlzObject * | srcObj, |
WlzMeshTransform3D * | wmt3D, | ||
WlzInterpolationType | interp, | ||
WlzErrorNum * | dstErr | ||
) |
References ALC_ER_NONE, AlcCalloc(), AlcFree(), AlcInt2Free(), AlcInt2Malloc(), AlcRealloc(), _WlzValues::core, _WlzDomain::core, _WlzObject::domain, _WlzPlaneDomain::domains, _WlzMeshTransform2D5::elements, _WlzDomain::i, _WlzPlaneDomain::lastpl, _WlzMeshTransform3D::nElem, _WlzMeshTransform2D5::nodes, _WlzDomain::p, _WlzPlaneDomain::plane1, _WlzCoreDomain::type, _WlzObject::type, _WlzVoxelValues::values, _WlzObject::values, _WlzValues::vox, WLZ_2D_DOMAINOBJ, WLZ_3D_DOMAINOBJ, WLZ_EMPTY_OBJ, WLZ_ERR_DOMAIN_NULL, WLZ_ERR_MEM_ALLOC, WLZ_ERR_NONE, WLZ_ERR_OBJECT_TYPE, WLZ_INTERVALDOMAIN_RECT, WLZ_PLANEDOMAIN_DOMAIN, WLZ_VOXELVALUETABLE_GREY, WlzAssignDomain(), WlzAssignValues(), WlzFreeObj(), WlzGetBackground(), WlzMakeEmpty(), WlzMakeIntervalDomain(), WlzMakeMain(), WlzMakePlaneDomain(), WlzMakeVoxelValueTb(), WlzMQ3DTransformBBoxI3(), _WlzIBox3::xMax, _WlzIBox3::xMin, _WlzIBox3::yMax, _WlzIBox3::yMin, _WlzIBox3::zMax, and _WlzIBox3::zMin.
WlzIBox3 WlzMQ3DTransformBBoxI3 | ( | WlzMeshTransform3D * | wmt3D, |
WlzErrorNum * | errNum | ||
) |
References _WlzMeshTransform3D::nNodes, _WlzMeshTransform3D::nodes, WLZ_ERR_NONE, WLZ_ERR_TRANSFORM_TYPE, _WlzIBox3::xMax, _WlzIBox3::xMin, _WlzIBox3::yMax, _WlzIBox3::yMin, _WlzIBox3::zMax, and _WlzIBox3::zMin.
Referenced by WlzMeshTransformObj_3D().
int WlzIsSinglePointCutMesh | ( | const WlzMeshTransform2D5 * | wmt2D5 | ) |
References _WlzMeshTransform2D5::nElem, _WlzMeshTransform2D5::nodes, _WlzDVertex2::vtX, and _WlzDVertex2::vtY.
int WlzNoAreaGreaterThanOne | ( | const WlzMeshTransform2D5 * | wmt2D5 | ) |
References _WlzMeshTransform2D5::elements, _WlzMeshTransform2D5::nElem, _WlzMeshTransform2D5::nodes, _WlzDVertex2::vtX, _WlzDVertex2::vtY, and WlzGeomTriangleSnArea2().
WlzMeshTransform3D * WlzTetrahedronMeshFromObj | ( | WlzObject * | wObjC, |
const WlzDBox3 | bBoxS, | ||
const int | numOfElemAlonX, | ||
const int | numOfElemAlonY, | ||
const int | numOfElemAlonZ, | ||
WlzErrorNum * | errNums | ||
) |
References AlcCalloc(), AlcRealloc(), _WlzMeshTransform3D::elements, _WlzMeshTransform3D::nElem, _WlzMeshTransform3D::nNodes, _WlzMeshTransform3D::nodes, WLZ_3D_DOMAINOBJ, WLZ_ERR_MEM_ALLOC, WLZ_ERR_NONE, WlzHasIntersection(), WlzMakeCuboidObject(), WlzShiftObject(), WlzTetrahedronProducerFromCube(), _WlzDBox3::xMax, _WlzDBox3::xMin, _WlzDBox3::yMax, _WlzDBox3::yMin, _WlzDBox3::zMax, and _WlzDBox3::zMin.