ftp.nice.ch/pub/next/graphics/3d/Rotation.1.0.s.tar.gz#/AzimuthMat.h

This is AzimuthMat.h in view mode; [Download] [Up]

#import "PerspMat.h"

@interface AzimuthMat : PerspMat
 /* A special class of perspective matrices where the viewpoint is */
 /* determined by an azimuth angle (theta), an elevation angle (phi), */
 /* and a distance to the viewpoint.  The limits are the ranges of the */
 /* three coordinates.  The resulting projected points are in the */
 /* range [-1,1] */
{
  float theta, c_theta, s_theta, phi, c_phi, s_phi, dist, limits[6];
  float to_theta_cache[16], to_phi_cache[16], to_dist_cache[16];
  BOOL  is_cached_to_theta, is_cached_to_phi, is_cached_to_dist;
}

/* Factory Methods */

+new;     // as identity matrix with limits of [0,1] for all coordinates
+newLimits:(float *)newlimits;

/* Public Methods */

-reset;
-setlimits:(float *)newlimits;
-setTheta:(float) radians;
-setPhi:(float) radians;
-setdist:(float) distance;
-setinvdist:(float) invdistance;
-(float)getTheta:sender;
-(float)getPhi:sender;
-(float)getdist:sender;

@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.