Woolz Image Processing  Version 1.8.3
Wlz3DViewStructUtils.c File Reference

Utility functions associated with 3D views. More...

Functions

WlzThreeDViewStructWlzMake3DViewStructCopy (WlzThreeDViewStruct *given, WlzErrorNum *dstErr)
 Allocates and intialises a new 3D view and sets it's parameters to those of the given view. The new transform's look up tables are not allocated. More...
 
WlzThreeDViewStructWlzMake3DViewStruct (WlzObjectType type, WlzErrorNum *dstErr)
 Allocates and intialises a 3D view. The transform look up tables are not allocated. More...
 
WlzErrorNum WlzFree3DViewStruct (WlzThreeDViewStruct *viewStr)
 Frees a view. More...
 
WlzErrorNum WlzInit3DViewStructAffineTransform (WlzThreeDViewStruct *viewStr)
 Sets up the affine transform of the given view including scale. This does not require any initialisation. The intialisation mask will have the WLZ_3DVIEWSTRUCT_INIT_TRANS bit set. By default the scale parameters are not used. Scaling is enabled by setting bits in the voxelRescaleFlg: setting bit 1 will switch on voxel-size rescaling; setting bit 2 will enable global scaling. More...
 
WlzErrorNum Wlz3DViewStructSetupTransformLuts (WlzThreeDViewStruct *viewStr)
 Sets up the transformation look up tables of the given view. More...
 
WlzErrorNum Wlz3DViewStructTransformBB (WlzObject *obj, WlzThreeDViewStruct *viewStr)
 Set up the min and max vertex values for the transformed space. If the input object is a WLZ_3D_DOMAINOBJ then the bounding box will enclose the transformed bounding box of the input object. If the input object is a WLZ_2D_DOMAINOBJ then it is assumed that this is the transformed section and the min and max valuesa are those of the object itself. These values are padded to account for round-off errors. More...
 
WlzErrorNum WlzInit3DViewStruct (WlzThreeDViewStruct *viewStr, WlzObject *obj)
 Initialises a 3D view with respect to the given view parameters and a 3D object. More...
 
WlzErrorNum Wlz3DSectionTransformVtx (WlzDVertex3 *vtx, WlzThreeDViewStruct *viewStr)
 Transforms a 3D vertex using the section transform overwriting the vertex values. More...
 
WlzErrorNum Wlz3DSectionTransformVtxR (WlzThreeDViewStruct *viewStr, WlzDVertex3 vtx, WlzDVertex3 *dstVtx)
 Transforms a 3D vertex using the section transform. More...
 
WlzErrorNum Wlz3DSectionTransformInvVtx (WlzDVertex3 *vtx, WlzThreeDViewStruct *viewStr)
 Inverse transforms a 3D vertex using the section transform, overwriting the vertex values. More...
 
WlzErrorNum Wlz3DSectionTransformInvVtxR (WlzThreeDViewStruct *viewStr, WlzDVertex3 vtx, WlzDVertex3 *dstVtx)
 Inverse transforms a 3D vertex using the section transform. More...
 
WlzErrorNum Wlz3DSectionIncrementDistance (WlzThreeDViewStruct *viewStr, double incr)
 Increments the distance parameter of a 3D view resetting the look up tables as required. This is provided because changing the distance does not require the rotation matrix and all the look up tables only a single multiply and add per look up table entry instead of 2 multiplies and three adds plus all the y look up tables and the rotation matrix with many trigonometry calculations. More...
 
WlzDVertex2 Wlz3DViewGetIntersectionPoint (WlzThreeDViewStruct *v1, WlzThreeDViewStruct *v2, WlzErrorNum *dstErr)
 Finds a point on the line of intersection of two 3D views. The point is returned in the coordinate system of the first view. This function together with Wlz3DViewGetIntersectionAngle() is useful for finding the line of intersection within one of the planes. More...
 
double Wlz3DViewGetIntersectionAngle (WlzThreeDViewStruct *v1, WlzThreeDViewStruct *v2, WlzErrorNum *dstErr)
 Finds the angle of the ine of intersection of two views. More...
 
int Wlz3DViewGetBoundingBoxIntersection (WlzThreeDViewStruct *viewStr, WlzDVertex3 *rtnVtxs, WlzErrorNum *dstErr)
 Gets the vertices of intersection between a section and the bounding box of the reference object. The vertices are returned in order to be used for display etc.. More...
 
int Wlz3DViewGetBoundingBoxIntersectionA (WlzThreeDViewStruct *viewStr, int *dstSizeArrayVtxs, WlzDVertex3 **dstArrayVtxs, WlzErrorNum *dstErr)
 Gets the vertices of intersection between a section and the given bounding box. The vertices are returned in order to be used for display etc. More...
 
int Wlz3DViewGetGivenBBIntersection (WlzThreeDViewStruct *viewStr, WlzDVertex3 bbMin, WlzDVertex3 bbMax, WlzDVertex3 *rtnVtxs, WlzErrorNum *dstErr)
 get the vertices of intersection between a section and the given bounding box. The vertices are returned in order to be used for display etc. More...
 
WlzErrorNum Wlz3DViewGetFixed (WlzThreeDViewStruct *vs, double *dstX, double *dstY, double *dstZ)
 Gets the fixed point coordinates from a 3D view. More...
 
WlzErrorNum Wlz3DViewSetFixed (WlzThreeDViewStruct *vs, double x, double y, double z)
 Sets the fixed point coordinates in a 3D view. More...
 
WlzErrorNum Wlz3DViewGetTheta (WlzThreeDViewStruct *vs, double *dstVal)
 Gets the angle theta from the 3D view. More...
 
WlzErrorNum Wlz3DViewSetTheta (WlzThreeDViewStruct *vs, double val)
 Sets the angle theta from the 3D view. More...
 
WlzErrorNum Wlz3DViewGetPhi (WlzThreeDViewStruct *vs, double *dstVal)
 Gets the angle phi from the 3D view. More...
 
WlzErrorNum Wlz3DViewSetPhi (WlzThreeDViewStruct *vs, double val)
 Sets the angle phi from the 3D view. More...
 
WlzErrorNum Wlz3DViewGetZeta (WlzThreeDViewStruct *vs, double *dstVal)
 Gets the angle zeta from the 3D view. More...
 
WlzErrorNum Wlz3DViewSetZeta (WlzThreeDViewStruct *vs, double val)
 Sets the angle zeta from the 3D view. More...
 
WlzErrorNum Wlz3DViewGetDist (WlzThreeDViewStruct *vs, double *dstVal)
 Gets the increment distance from the 3D view. More...
 
WlzErrorNum Wlz3DViewSetDist (WlzThreeDViewStruct *vs, double val)
 Sets the increment distance in the 3D view. More...
 
WlzErrorNum Wlz3DViewGetScale (WlzThreeDViewStruct *vs, double *dstVal)
 Gets the scale from the 3D view. More...
 
WlzErrorNum Wlz3DViewSetScale (WlzThreeDViewStruct *vs, double val)
 Sets the scale in the 3D view. More...
 
WlzErrorNum Wlz3DViewGetViewMode (WlzThreeDViewStruct *vs, WlzThreeDViewMode *dstVal)
 Gets the view mode from the 3D view. More...
 
WlzErrorNum Wlz3DViewSetViewMode (WlzThreeDViewStruct *vs, WlzThreeDViewMode val)
 Sets the view mode in the 3D view. More...
 
WlzErrorNum Wlz3DViewGetUp (WlzThreeDViewStruct *vs, double *dstX, double *dstY, double *dstZ)
 Gets the up vector from the 3D view. More...
 
WlzErrorNum Wlz3DViewSetUp (WlzThreeDViewStruct *vs, double x, double y, double z)
 Sets the up vector in the 3D view. More...
 
WlzErrorNum Wlz3DViewGetFixed2 (WlzThreeDViewStruct *vs, double *dstX, double *dstY, double *dstZ)
 Gets the coordinates of the second fixed point from the 3D view. More...
 
WlzErrorNum Wlz3DViewSetFixed2 (WlzThreeDViewStruct *vs, double x, double y, double z)
 Sets the coordinates of the second fixed point in the 3D view. More...
 
WlzErrorNum Wlz3DViewGetFixedLineAngle (WlzThreeDViewStruct *vs, double *dstVal)
 Gets the fixed line angle from the 3D view. More...
 
WlzErrorNum Wlz3DViewSetFixedLineAngle (WlzThreeDViewStruct *vs, double val)
 Sets the fixed line angle in the 3D view. More...
 
WlzErrorNum Wlz3DViewGetMaxvals (WlzThreeDViewStruct *vs, double *dstX, double *dstY, double *dstZ)
 Gets the section maximum values from the 3D view. More...
 
WlzErrorNum Wlz3DViewGetMinvals (WlzThreeDViewStruct *vs, double *dstX, double *dstY, double *dstZ)
 Gets the section minimum values from the 3D view. More...
 
void Wlz3DViewGetPlaneEqn (WlzThreeDViewStruct *view, double *dstA, double *dstB, double *dstC, double *dstD)
 Computes the parameters of the equation of the plane defined by the given 3D view. More...
 
int Wlz3DViewIntersectAABB (WlzThreeDViewStruct *view, WlzDBox3 box)
 Tests for an intersection between the plane defined by the given 3D view and the given axis aligned bounding box (AABB). More...
 
WlzThreeDViewStructWlz3DViewStructFromNormal (WlzDVertex3 nrm, WlzDVertex3 org, WlzDVertex3 up, WlzErrorNum *dstErr)
 Creates a new 3D view structure with angles and fixed point set. More...
 

Detailed Description

Utility functions associated with 3D views.

Author
Richard Baldock, Bill Hill
Date
October 2001
Version
Id
dd79b5c5c5e363bc18bb21658d636739e7059543
Address: MRC Human Genetics Unit, MRC Institute of Genetics and Molecular Medicine, University of Edinburgh, Western General Hospital, Edinburgh, EH4 2XU, UK.
Copyright (C), [2012], The University Court of the University of Edinburgh, Old College, Edinburgh, UK.

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.