Code archives/3D Graphics - Mesh/Mid3dhandle() function

This code has been declared by its author to be Public Domain code.

Download source code

Mid3dhandle() function by Bot Builder
(Posted 24 years ago)
It's pretty simple. All it does is take the maximum and minumum of x,y,and z, calculate the average, and move the vertices in such a way that the locational handle matches the average. So basically, if you've ever been annoyed with non-center handles, positioning your object far away from where you want it, use the Mid3dhandle() function.
Function Mid3dHandle(mesh)
 ux#=-100000
 uy#=-100000
 uz#=-100000
 lx#=100000
 ly#=100000
 lz#=100000
 cs=CountSurfaces(mesh)
 For s=1 To cs
  surf=GetSurface(mesh,s)
  cv=CountVertices(surf)-1
  For v=0 To cv
   vx#=VertexX#(surf,v)
   vy#=VertexY#(surf,v)
   vz#=VertexZ#(surf,v)
   If vx#<lx# Then lx#=vx#
   If vx#>ux# Then ux#=vx#
   If vy#<ly# Then ly#=vy#
   If vy#>uy# Then uy#=vy#
   If vz#<lz# Then lz#=vz#
   If vz#>uz# Then uz#=vz#
  Next
 Next
 ax#=(ux#+lx#)/2
 ay#=(uy#+ly#)/2
 az#=(uz#+lz#)/2
 PositionMesh mesh,-ax#,-ay#,-az#
End Function