topical media & game development

talk show tell print

lib-of-vs-libs-QTDevWin-CIncludes-QD3DTransform.h / h



  /*
       File:       QD3DTransform.h
   
       Contains:   Q3Transform routines
   
       Version:    Technology: Quickdraw 3D 1.6
                   Release:    QuickTime 6.0.2
   
       Copyright:  (c) 1995-2001 by Apple Computer, Inc., all rights reserved.
   
       Bugs?:      For bug reports, consult the following page on
                   the World Wide Web:
   
                       http://developer.apple.com/bugreporter/
   
  */
  ifndef __QD3DTRANSFORM__
  define __QD3DTRANSFORM__
  
  ifndef __QD3D__
  include <QD3D.h>
  endif
  
  if PRAGMA_ONCE
  #pragma once
  endif
  
  ifdef __cplusplus
  extern "C" {
  endif
  
  if PRAGMA_IMPORT
  #pragma import on
  endif
  
  if PRAGMA_STRUCT_ALIGN
      #pragma options align=power
  #elif PRAGMA_STRUCT_PACKPUSH
      #pragma pack(push, 2)
  #elif PRAGMA_STRUCT_PACK
      #pragma pack(2)
  endif
  
  if PRAGMA_ENUM_ALWAYSINT
      #if defined(__fourbyteints__) && !__fourbyteints__ 
          #define __QD3DTRANSFORM__RESTORE_TWOBYTEINTS
          #pragma fourbyteints on
      #endif
      #pragma enumsalwaysint on
  #elif PRAGMA_ENUM_OPTIONS
      #pragma option enum=int
  #elif PRAGMA_ENUM_PACK
      #if __option(pack_enums)
          #define __QD3DTRANSFORM__RESTORE_PACKED_ENUMS
          #pragma options(!pack_enums)
      #endif
  endif
  
  
**************************************************************************** * ** * Transform Routines ** * ** ***************************************************************************

  
  if CALL_NOT_IN_CARBON
  EXTERN_API_C( TQ3ObjectType )
  Q3Transform_GetType             (TQ3TransformObject     transform);
  
  EXTERN_API_C( TQ3Matrix4x4 *)
  Q3Transform_GetMatrix           (TQ3TransformObject     transform,
                                   TQ3Matrix4x4 *         matrix);
  
  EXTERN_API_C( TQ3Status )
  Q3Transform_Submit              (TQ3TransformObject     transform,
                                   TQ3ViewObject          view);
  
  
**************************************************************************** * ** * MatrixTransform Routines ** * ** ***************************************************************************

  
  EXTERN_API_C( TQ3TransformObject )
  Q3MatrixTransform_New           (const TQ3Matrix4x4 *   matrix);
  
  EXTERN_API_C( TQ3Status )
  Q3MatrixTransform_Submit        (const TQ3Matrix4x4 *   matrix,
                                   TQ3ViewObject          view);
  
  EXTERN_API_C( TQ3Status )
  Q3MatrixTransform_Set           (TQ3TransformObject     transform,
                                   const TQ3Matrix4x4 *   matrix);
  
  EXTERN_API_C( TQ3Status )
  Q3MatrixTransform_Get           (TQ3TransformObject     transform,
                                   TQ3Matrix4x4 *         matrix);
  
  
**************************************************************************** * ** * RotateTransform Data ** * ** ***************************************************************************

  
  endif  /* CALL_NOT_IN_CARBON */
  
  struct TQ3RotateTransformData {
      TQ3Axis                         axis;
      float                           radians;
  };
  typedef struct TQ3RotateTransformData   TQ3RotateTransformData;
  
**************************************************************************** * ** * RotateTransform Routines ** * ** ***************************************************************************

  
  if CALL_NOT_IN_CARBON
  EXTERN_API_C( TQ3TransformObject )
  Q3RotateTransform_New           (const TQ3RotateTransformData * data);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateTransform_Submit        (const TQ3RotateTransformData * data,
                                   TQ3ViewObject          view);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateTransform_SetData       (TQ3TransformObject     transform,
                                   const TQ3RotateTransformData * data);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateTransform_GetData       (TQ3TransformObject     transform,
                                   TQ3RotateTransformData * data);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateTransform_SetAxis       (TQ3TransformObject     transform,
                                   TQ3Axis                axis);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateTransform_SetAngle      (TQ3TransformObject     transform,
                                   float                  radians);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateTransform_GetAxis       (TQ3TransformObject     renderable,
                                   TQ3Axis *              axis);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateTransform_GetAngle      (TQ3TransformObject     transform,
                                   float *                radians);
  
  
**************************************************************************** * ** * RotateAboutPointTransform Data ** * ** ***************************************************************************

  
  endif  /* CALL_NOT_IN_CARBON */
  
  struct TQ3RotateAboutPointTransformData {
      TQ3Axis                         axis;
      float                           radians;
      TQ3Point3D                      about;
  };
  typedef struct TQ3RotateAboutPointTransformData TQ3RotateAboutPointTransformData;
  
**************************************************************************** * ** * RotateAboutPointTransform Routines ** * ** ***************************************************************************

  
  if CALL_NOT_IN_CARBON
  EXTERN_API_C( TQ3TransformObject )
  Q3RotateAboutPointTransform_New (const TQ3RotateAboutPointTransformData * data);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateAboutPointTransform_Submit (const TQ3RotateAboutPointTransformData * data,
                                   TQ3ViewObject          view);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateAboutPointTransform_SetData (TQ3TransformObject  transform,
                                   const TQ3RotateAboutPointTransformData * data);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateAboutPointTransform_GetData (TQ3TransformObject  transform,
                                   TQ3RotateAboutPointTransformData * data);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateAboutPointTransform_SetAxis (TQ3TransformObject  transform,
                                   TQ3Axis                axis);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateAboutPointTransform_GetAxis (TQ3TransformObject  transform,
                                   TQ3Axis *              axis);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateAboutPointTransform_SetAngle (TQ3TransformObject  transform,
                                   float                  radians);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateAboutPointTransform_GetAngle (TQ3TransformObject  transform,
                                   float *                radians);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateAboutPointTransform_SetAboutPoint (TQ3TransformObject  transform,
                                   const TQ3Point3D *     about);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateAboutPointTransform_GetAboutPoint (TQ3TransformObject  transform,
                                   TQ3Point3D *           about);
  
  
**************************************************************************** * ** * RotateAboutAxisTransform Data ** * ** ***************************************************************************

  
  endif  /* CALL_NOT_IN_CARBON */
  
  struct TQ3RotateAboutAxisTransformData {
      TQ3Point3D                      origin;
      TQ3Vector3D                     orientation;
      float                           radians;
  };
  typedef struct TQ3RotateAboutAxisTransformData TQ3RotateAboutAxisTransformData;
  
**************************************************************************** * ** * RotateAboutAxisTransform Routines ** * ** ***************************************************************************

  
  if CALL_NOT_IN_CARBON
  EXTERN_API_C( TQ3TransformObject )
  Q3RotateAboutAxisTransform_New  (const TQ3RotateAboutAxisTransformData * data);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateAboutAxisTransform_Submit (const TQ3RotateAboutAxisTransformData * data,
                                   TQ3ViewObject          view);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateAboutAxisTransform_SetData (TQ3TransformObject  transform,
                                   const TQ3RotateAboutAxisTransformData * data);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateAboutAxisTransform_GetData (TQ3TransformObject  transform,
                                   TQ3RotateAboutAxisTransformData * data);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateAboutAxisTransform_SetOrientation (TQ3TransformObject  transform,
                                   const TQ3Vector3D *    axis);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateAboutAxisTransform_GetOrientation (TQ3TransformObject  transform,
                                   TQ3Vector3D *          axis);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateAboutAxisTransform_SetAngle (TQ3TransformObject  transform,
                                   float                  radians);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateAboutAxisTransform_GetAngle (TQ3TransformObject  transform,
                                   float *                radians);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateAboutAxisTransform_SetOrigin (TQ3TransformObject  transform,
                                   const TQ3Point3D *     origin);
  
  EXTERN_API_C( TQ3Status )
  Q3RotateAboutAxisTransform_GetOrigin (TQ3TransformObject  transform,
                                   TQ3Point3D *           origin);
  
  
**************************************************************************** * ** * ScaleTransform Routines ** * ** ***************************************************************************

  
  EXTERN_API_C( TQ3TransformObject )
  Q3ScaleTransform_New            (const TQ3Vector3D *    scale);
  
  EXTERN_API_C( TQ3Status )
  Q3ScaleTransform_Submit         (const TQ3Vector3D *    scale,
                                   TQ3ViewObject          view);
  
  EXTERN_API_C( TQ3Status )
  Q3ScaleTransform_Set            (TQ3TransformObject     transform,
                                   const TQ3Vector3D *    scale);
  
  EXTERN_API_C( TQ3Status )
  Q3ScaleTransform_Get            (TQ3TransformObject     transform,
                                   TQ3Vector3D *          scale);
  
  
**************************************************************************** * ** * TranslateTransform Routines ** * ** ***************************************************************************

  
  EXTERN_API_C( TQ3TransformObject )
  Q3TranslateTransform_New        (const TQ3Vector3D *    translate);
  
  EXTERN_API_C( TQ3Status )
  Q3TranslateTransform_Submit     (const TQ3Vector3D *    translate,
                                   TQ3ViewObject          view);
  
  EXTERN_API_C( TQ3Status )
  Q3TranslateTransform_Set        (TQ3TransformObject     transform,
                                   const TQ3Vector3D *    translate);
  
  EXTERN_API_C( TQ3Status )
  Q3TranslateTransform_Get        (TQ3TransformObject     transform,
                                   TQ3Vector3D *          translate);
  
  
**************************************************************************** * ** * QuaternionTransform Routines ** * ** ***************************************************************************

  
  EXTERN_API_C( TQ3TransformObject )
  Q3QuaternionTransform_New       (const TQ3Quaternion *  quaternion);
  
  EXTERN_API_C( TQ3Status )
  Q3QuaternionTransform_Submit    (const TQ3Quaternion *  quaternion,
                                   TQ3ViewObject          view);
  
  EXTERN_API_C( TQ3Status )
  Q3QuaternionTransform_Set       (TQ3TransformObject     transform,
                                   const TQ3Quaternion *  quaternion);
  
  EXTERN_API_C( TQ3Status )
  Q3QuaternionTransform_Get       (TQ3TransformObject     transform,
                                   TQ3Quaternion *        quaternion);
  
  
**************************************************************************** * ** * ResetTransform Routines ** * ** ***************************************************************************

  
  EXTERN_API_C( TQ3TransformObject )
  Q3ResetTransform_New            (void);
  
  EXTERN_API_C( TQ3Status )
  Q3ResetTransform_Submit         (TQ3ViewObject          view);
  
  endif  /* CALL_NOT_IN_CARBON */
  
  if PRAGMA_ENUM_ALWAYSINT
      #pragma enumsalwaysint reset
      #ifdef __QD3DTRANSFORM__RESTORE_TWOBYTEINTS
          #pragma fourbyteints off
      #endif
  #elif PRAGMA_ENUM_OPTIONS
      #pragma option enum=reset
  #elif defined(__QD3DTRANSFORM__RESTORE_PACKED_ENUMS)
      #pragma options(pack_enums)
  endif
  
  if PRAGMA_STRUCT_ALIGN
      #pragma options align=reset
  #elif PRAGMA_STRUCT_PACKPUSH
      #pragma pack(pop)
  #elif PRAGMA_STRUCT_PACK
      #pragma pack()
  endif
  
  ifdef PRAGMA_IMPORT_OFF
  #pragma import off
  #elif PRAGMA_IMPORT
  #pragma import reset
  endif
  
  ifdef __cplusplus
  }
  endif
  
  endif /* __QD3DTRANSFORM__ */
  
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.