source-engine-2018-hl2_src/common/quicktime_win32/QD3DMath.h
FluorescentCIAAfricanAmerican 3bf9df6b27 1
2020-04-22 12:56:21 -04:00

2244 lines
53 KiB
C

/*
File: QD3DMath.h
Contains: Math & matrix routines and definitions.
Version: Technology: Quickdraw 3D 1.6
Release: QuickTime 7.3
Copyright: (c) 2007 (c) 1995-1998 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 __QD3DMATH__
#define __QD3DMATH__
#ifndef __QD3D__
#include <QD3D.h>
#endif
#include <float.h>
#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 __QD3DMATH__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 __QD3DMATH__RESTORE_PACKED_ENUMS
#pragma options(!pack_enums)
#endif
#endif
/******************************************************************************
** **
** Constant Definitions **
** **
*****************************************************************************/
/*
* Real zero definition
*/
#ifdef FLT_EPSILON
#define kQ3RealZero (FLT_EPSILON)
#else
#define kQ3RealZero ((float)1.19209290e-07)
#endif
#ifdef FLT_MAX
#define kQ3MaxFloat (FLT_MAX)
#else
#define kQ3MaxFloat ((float)3.40282347e+38)
#endif
/*
* Values of PI
*/
#define kQ3Pi ((float)3.1415926535898)
#define kQ32Pi ((float)(2.0 * 3.1415926535898))
#define kQ3PiOver2 ((float)(3.1415926535898 / 2.0))
#define kQ33PiOver2 ((float)(3.0 * 3.1415926535898 / 2.0))
/******************************************************************************
** **
** Miscellaneous Functions **
** **
*****************************************************************************/
#define Q3Math_DegreesToRadians(x) ((float)((x) * kQ3Pi / 180.0f))
#define Q3Math_RadiansToDegrees(x) ((float)((x) * 180.0f / kQ3Pi))
#define Q3Math_Min(x,y) ((x) <= (y) ? (x) : (y))
#define Q3Math_Max(x,y) ((x) >= (y) ? (x) : (y))
/******************************************************************************
** **
** Point and Vector Creation **
** **
*****************************************************************************/
#if CALL_NOT_IN_CARBON
/*
* Q3Point2D_Set()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Point2D * )
Q3Point2D_Set(
TQ3Point2D * point2D,
float x,
float y);
/*
* Q3Param2D_Set()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Param2D * )
Q3Param2D_Set(
TQ3Param2D * param2D,
float u,
float v);
/*
* Q3Point3D_Set()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Point3D * )
Q3Point3D_Set(
TQ3Point3D * point3D,
float x,
float y,
float z);
/*
* Q3RationalPoint3D_Set()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3RationalPoint3D * )
Q3RationalPoint3D_Set(
TQ3RationalPoint3D * point3D,
float x,
float y,
float w);
/*
* Q3RationalPoint4D_Set()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3RationalPoint4D * )
Q3RationalPoint4D_Set(
TQ3RationalPoint4D * point4D,
float x,
float y,
float z,
float w);
/*
* Q3Vector2D_Set()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector2D * )
Q3Vector2D_Set(
TQ3Vector2D * vector2D,
float x,
float y);
/*
* Q3Vector3D_Set()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector3D * )
Q3Vector3D_Set(
TQ3Vector3D * vector3D,
float x,
float y,
float z);
/*
* Q3PolarPoint_Set()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3PolarPoint * )
Q3PolarPoint_Set(
TQ3PolarPoint * polarPoint,
float r,
float theta);
/*
* Q3SphericalPoint_Set()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3SphericalPoint * )
Q3SphericalPoint_Set(
TQ3SphericalPoint * sphericalPoint,
float rho,
float theta,
float phi);
/******************************************************************************
** **
** Point and Vector Dimension Conversion **
** **
*****************************************************************************/
/*
* Q3Point2D_To3D()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Point3D * )
Q3Point2D_To3D(
const TQ3Point2D * point2D,
TQ3Point3D * result);
/*
* Q3RationalPoint3D_To2D()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Point2D * )
Q3RationalPoint3D_To2D(
const TQ3RationalPoint3D * point3D,
TQ3Point2D * result);
/*
* Q3Point3D_To4D()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3RationalPoint4D * )
Q3Point3D_To4D(
const TQ3Point3D * point3D,
TQ3RationalPoint4D * result);
/*
* Q3RationalPoint4D_To3D()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Point3D * )
Q3RationalPoint4D_To3D(
const TQ3RationalPoint4D * point4D,
TQ3Point3D * result);
/*
* Q3Vector2D_To3D()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector3D * )
Q3Vector2D_To3D(
const TQ3Vector2D * vector2D,
TQ3Vector3D * result);
/*
* Q3Vector3D_To2D()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector2D * )
Q3Vector3D_To2D(
const TQ3Vector3D * vector3D,
TQ3Vector2D * result);
/******************************************************************************
** **
** Point Subtraction **
** **
*****************************************************************************/
/*
* Q3Point2D_Subtract()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector2D * )
Q3Point2D_Subtract(
const TQ3Point2D * p1,
const TQ3Point2D * p2,
TQ3Vector2D * result);
/*
* Q3Param2D_Subtract()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector2D * )
Q3Param2D_Subtract(
const TQ3Param2D * p1,
const TQ3Param2D * p2,
TQ3Vector2D * result);
/*
* Q3Point3D_Subtract()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector3D * )
Q3Point3D_Subtract(
const TQ3Point3D * p1,
const TQ3Point3D * p2,
TQ3Vector3D * result);
/******************************************************************************
** **
** Point Distance **
** **
*****************************************************************************/
/*
* Q3Point2D_Distance()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( float )
Q3Point2D_Distance(
const TQ3Point2D * p1,
const TQ3Point2D * p2);
/*
* Q3Point2D_DistanceSquared()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( float )
Q3Point2D_DistanceSquared(
const TQ3Point2D * p1,
const TQ3Point2D * p2);
/*
* Q3Param2D_Distance()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( float )
Q3Param2D_Distance(
const TQ3Param2D * p1,
const TQ3Param2D * p2);
/*
* Q3Param2D_DistanceSquared()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( float )
Q3Param2D_DistanceSquared(
const TQ3Param2D * p1,
const TQ3Param2D * p2);
/*
* Q3RationalPoint3D_Distance()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( float )
Q3RationalPoint3D_Distance(
const TQ3RationalPoint3D * p1,
const TQ3RationalPoint3D * p2);
/*
* Q3RationalPoint3D_DistanceSquared()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( float )
Q3RationalPoint3D_DistanceSquared(
const TQ3RationalPoint3D * p1,
const TQ3RationalPoint3D * p2);
/*
* Q3Point3D_Distance()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( float )
Q3Point3D_Distance(
const TQ3Point3D * p1,
const TQ3Point3D * p2);
/*
* Q3Point3D_DistanceSquared()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( float )
Q3Point3D_DistanceSquared(
const TQ3Point3D * p1,
const TQ3Point3D * p2);
/*
* Q3RationalPoint4D_Distance()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( float )
Q3RationalPoint4D_Distance(
const TQ3RationalPoint4D * p1,
const TQ3RationalPoint4D * p2);
/*
* Q3RationalPoint4D_DistanceSquared()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( float )
Q3RationalPoint4D_DistanceSquared(
const TQ3RationalPoint4D * p1,
const TQ3RationalPoint4D * p2);
/******************************************************************************
** **
** Point Relative Ratio **
** **
*****************************************************************************/
/*
* Q3Point2D_RRatio()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Point2D * )
Q3Point2D_RRatio(
const TQ3Point2D * p1,
const TQ3Point2D * p2,
float r1,
float r2,
TQ3Point2D * result);
/*
* Q3Param2D_RRatio()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Param2D * )
Q3Param2D_RRatio(
const TQ3Param2D * p1,
const TQ3Param2D * p2,
float r1,
float r2,
TQ3Param2D * result);
/*
* Q3Point3D_RRatio()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Point3D * )
Q3Point3D_RRatio(
const TQ3Point3D * p1,
const TQ3Point3D * p2,
float r1,
float r2,
TQ3Point3D * result);
/*
* Q3RationalPoint4D_RRatio()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3RationalPoint4D * )
Q3RationalPoint4D_RRatio(
const TQ3RationalPoint4D * p1,
const TQ3RationalPoint4D * p2,
float r1,
float r2,
TQ3RationalPoint4D * result);
/******************************************************************************
** **
** Point / Vector Addition & Subtraction **
** **
*****************************************************************************/
/*
* Q3Point2D_Vector2D_Add()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Point2D * )
Q3Point2D_Vector2D_Add(
const TQ3Point2D * point2D,
const TQ3Vector2D * vector2D,
TQ3Point2D * result);
/*
* Q3Param2D_Vector2D_Add()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Param2D * )
Q3Param2D_Vector2D_Add(
const TQ3Param2D * param2D,
const TQ3Vector2D * vector2D,
TQ3Param2D * result);
/*
* Q3Point3D_Vector3D_Add()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Point3D * )
Q3Point3D_Vector3D_Add(
const TQ3Point3D * point3D,
const TQ3Vector3D * vector3D,
TQ3Point3D * result);
/*
* Q3Point2D_Vector2D_Subtract()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Point2D * )
Q3Point2D_Vector2D_Subtract(
const TQ3Point2D * point2D,
const TQ3Vector2D * vector2D,
TQ3Point2D * result);
/*
* Q3Param2D_Vector2D_Subtract()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Param2D * )
Q3Param2D_Vector2D_Subtract(
const TQ3Param2D * param2D,
const TQ3Vector2D * vector2D,
TQ3Param2D * result);
/*
* Q3Point3D_Vector3D_Subtract()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Point3D * )
Q3Point3D_Vector3D_Subtract(
const TQ3Point3D * point3D,
const TQ3Vector3D * vector3D,
TQ3Point3D * result);
/******************************************************************************
** **
** Vector Scale **
** **
*****************************************************************************/
/*
* Q3Vector2D_Scale()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector2D * )
Q3Vector2D_Scale(
const TQ3Vector2D * vector2D,
float scalar,
TQ3Vector2D * result);
/*
* Q3Vector3D_Scale()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector3D * )
Q3Vector3D_Scale(
const TQ3Vector3D * vector3D,
float scalar,
TQ3Vector3D * result);
/******************************************************************************
** **
** Vector Length **
** **
*****************************************************************************/
/*
* Q3Vector2D_Length()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( float )
Q3Vector2D_Length(const TQ3Vector2D * vector2D);
/*
* Q3Vector3D_Length()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( float )
Q3Vector3D_Length(const TQ3Vector3D * vector3D);
/******************************************************************************
** **
** Vector Normalize **
** **
*****************************************************************************/
/*
* Q3Vector2D_Normalize()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector2D * )
Q3Vector2D_Normalize(
const TQ3Vector2D * vector2D,
TQ3Vector2D * result);
/*
* Q3Vector3D_Normalize()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector3D * )
Q3Vector3D_Normalize(
const TQ3Vector3D * vector3D,
TQ3Vector3D * result);
/******************************************************************************
** **
** Vector/Vector Addition and Subtraction **
** **
*****************************************************************************/
/*
* Q3Vector2D_Add()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector2D * )
Q3Vector2D_Add(
const TQ3Vector2D * v1,
const TQ3Vector2D * v2,
TQ3Vector2D * result);
/*
* Q3Vector3D_Add()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector3D * )
Q3Vector3D_Add(
const TQ3Vector3D * v1,
const TQ3Vector3D * v2,
TQ3Vector3D * result);
/*
* Q3Vector2D_Subtract()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector2D * )
Q3Vector2D_Subtract(
const TQ3Vector2D * v1,
const TQ3Vector2D * v2,
TQ3Vector2D * result);
/*
* Q3Vector3D_Subtract()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector3D * )
Q3Vector3D_Subtract(
const TQ3Vector3D * v1,
const TQ3Vector3D * v2,
TQ3Vector3D * result);
/******************************************************************************
** **
** Cross Product **
** **
*****************************************************************************/
/*
* Q3Vector2D_Cross()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( float )
Q3Vector2D_Cross(
const TQ3Vector2D * v1,
const TQ3Vector2D * v2);
/*
* Q3Vector3D_Cross()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector3D * )
Q3Vector3D_Cross(
const TQ3Vector3D * v1,
const TQ3Vector3D * v2,
TQ3Vector3D * result);
/*
* Q3Point3D_CrossProductTri()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector3D * )
Q3Point3D_CrossProductTri(
const TQ3Point3D * point1,
const TQ3Point3D * point2,
const TQ3Point3D * point3,
TQ3Vector3D * crossVector);
/******************************************************************************
** **
** Dot Product **
** **
*****************************************************************************/
/*
* Q3Vector2D_Dot()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( float )
Q3Vector2D_Dot(
const TQ3Vector2D * v1,
const TQ3Vector2D * v2);
/*
* Q3Vector3D_Dot()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( float )
Q3Vector3D_Dot(
const TQ3Vector3D * v1,
const TQ3Vector3D * v2);
/******************************************************************************
** **
** Point and Vector Transformation **
** **
*****************************************************************************/
/*
* Q3Vector2D_Transform()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector2D * )
Q3Vector2D_Transform(
const TQ3Vector2D * vector2D,
const TQ3Matrix3x3 * matrix3x3,
TQ3Vector2D * result);
/*
* Q3Vector3D_Transform()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector3D * )
Q3Vector3D_Transform(
const TQ3Vector3D * vector3D,
const TQ3Matrix4x4 * matrix4x4,
TQ3Vector3D * result);
/*
* Q3Point2D_Transform()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Point2D * )
Q3Point2D_Transform(
const TQ3Point2D * point2D,
const TQ3Matrix3x3 * matrix3x3,
TQ3Point2D * result);
/*
* Q3Param2D_Transform()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Param2D * )
Q3Param2D_Transform(
const TQ3Param2D * param2D,
const TQ3Matrix3x3 * matrix3x3,
TQ3Param2D * result);
/*
* Q3Point3D_Transform()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Point3D * )
Q3Point3D_Transform(
const TQ3Point3D * point3D,
const TQ3Matrix4x4 * matrix4x4,
TQ3Point3D * result);
/*
* Q3RationalPoint4D_Transform()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3RationalPoint4D * )
Q3RationalPoint4D_Transform(
const TQ3RationalPoint4D * point4D,
const TQ3Matrix4x4 * matrix4x4,
TQ3RationalPoint4D * result);
/*
* Q3Point3D_To3DTransformArray()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Status )
Q3Point3D_To3DTransformArray(
const TQ3Point3D * inPoint3D,
const TQ3Matrix4x4 * matrix,
TQ3Point3D * outPoint3D,
long numPoints,
unsigned long inStructSize,
unsigned long outStructSize);
/*
* Q3Point3D_To4DTransformArray()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Status )
Q3Point3D_To4DTransformArray(
const TQ3Point3D * inPoint3D,
const TQ3Matrix4x4 * matrix,
TQ3RationalPoint4D * outPoint4D,
long numPoints,
unsigned long inStructSize,
unsigned long outStructSize);
/*
* Q3RationalPoint4D_To4DTransformArray()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Status )
Q3RationalPoint4D_To4DTransformArray(
const TQ3RationalPoint4D * inPoint4D,
const TQ3Matrix4x4 * matrix,
TQ3RationalPoint4D * outPoint4D,
long numPoints,
unsigned long inStructSize,
unsigned long outStructSize);
/******************************************************************************
** **
** Vector Negation **
** **
*****************************************************************************/
/*
* Q3Vector2D_Negate()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector2D * )
Q3Vector2D_Negate(
const TQ3Vector2D * vector2D,
TQ3Vector2D * result);
/*
* Q3Vector3D_Negate()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector3D * )
Q3Vector3D_Negate(
const TQ3Vector3D * vector3D,
TQ3Vector3D * result);
/******************************************************************************
** **
** Point conversion from cartesian to polar **
** **
*****************************************************************************/
/*
* Q3Point2D_ToPolar()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3PolarPoint * )
Q3Point2D_ToPolar(
const TQ3Point2D * point2D,
TQ3PolarPoint * result);
/*
* Q3PolarPoint_ToPoint2D()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Point2D * )
Q3PolarPoint_ToPoint2D(
const TQ3PolarPoint * polarPoint,
TQ3Point2D * result);
/*
* Q3Point3D_ToSpherical()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3SphericalPoint * )
Q3Point3D_ToSpherical(
const TQ3Point3D * point3D,
TQ3SphericalPoint * result);
/*
* Q3SphericalPoint_ToPoint3D()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Point3D * )
Q3SphericalPoint_ToPoint3D(
const TQ3SphericalPoint * sphericalPoint,
TQ3Point3D * result);
/******************************************************************************
** **
** Point Affine Combinations **
** **
*****************************************************************************/
/*
* Q3Point2D_AffineComb()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Point2D * )
Q3Point2D_AffineComb(
const TQ3Point2D * points2D,
const float * weights,
unsigned long nPoints,
TQ3Point2D * result);
/*
* Q3Param2D_AffineComb()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Param2D * )
Q3Param2D_AffineComb(
const TQ3Param2D * params2D,
const float * weights,
unsigned long nPoints,
TQ3Param2D * result);
/*
* Q3RationalPoint3D_AffineComb()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3RationalPoint3D * )
Q3RationalPoint3D_AffineComb(
const TQ3RationalPoint3D * points3D,
const float * weights,
unsigned long numPoints,
TQ3RationalPoint3D * result);
/*
* Q3Point3D_AffineComb()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Point3D * )
Q3Point3D_AffineComb(
const TQ3Point3D * points3D,
const float * weights,
unsigned long numPoints,
TQ3Point3D * result);
/*
* Q3RationalPoint4D_AffineComb()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3RationalPoint4D * )
Q3RationalPoint4D_AffineComb(
const TQ3RationalPoint4D * points4D,
const float * weights,
unsigned long numPoints,
TQ3RationalPoint4D * result);
/******************************************************************************
** **
** Matrix Functions **
** **
*****************************************************************************/
/*
* Q3Matrix3x3_Copy()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix3x3 * )
Q3Matrix3x3_Copy(
const TQ3Matrix3x3 * matrix3x3,
TQ3Matrix3x3 * result);
/*
* Q3Matrix4x4_Copy()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix4x4 * )
Q3Matrix4x4_Copy(
const TQ3Matrix4x4 * matrix4x4,
TQ3Matrix4x4 * result);
/*
* Q3Matrix3x3_SetIdentity()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix3x3 * )
Q3Matrix3x3_SetIdentity(TQ3Matrix3x3 * matrix3x3);
/*
* Q3Matrix4x4_SetIdentity()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix4x4 * )
Q3Matrix4x4_SetIdentity(TQ3Matrix4x4 * matrix4x4);
/*
* Q3Matrix3x3_Transpose()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix3x3 * )
Q3Matrix3x3_Transpose(
const TQ3Matrix3x3 * matrix3x3,
TQ3Matrix3x3 * result);
/*
* Q3Matrix4x4_Transpose()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix4x4 * )
Q3Matrix4x4_Transpose(
const TQ3Matrix4x4 * matrix4x4,
TQ3Matrix4x4 * result);
/*
* Q3Matrix3x3_Invert()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix3x3 * )
Q3Matrix3x3_Invert(
const TQ3Matrix3x3 * matrix3x3,
TQ3Matrix3x3 * result);
/*
* Q3Matrix4x4_Invert()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix4x4 * )
Q3Matrix4x4_Invert(
const TQ3Matrix4x4 * matrix4x4,
TQ3Matrix4x4 * result);
/*
* Q3Matrix3x3_Adjoint()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix3x3 * )
Q3Matrix3x3_Adjoint(
const TQ3Matrix3x3 * matrix3x3,
TQ3Matrix3x3 * result);
/*
* Q3Matrix3x3_Multiply()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix3x3 * )
Q3Matrix3x3_Multiply(
const TQ3Matrix3x3 * matrixA,
const TQ3Matrix3x3 * matrixB,
TQ3Matrix3x3 * result);
/*
* Q3Matrix4x4_Multiply()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix4x4 * )
Q3Matrix4x4_Multiply(
const TQ3Matrix4x4 * matrixA,
const TQ3Matrix4x4 * matrixB,
TQ3Matrix4x4 * result);
/*
* Q3Matrix3x3_SetTranslate()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix3x3 * )
Q3Matrix3x3_SetTranslate(
TQ3Matrix3x3 * matrix3x3,
float xTrans,
float yTrans);
/*
* Q3Matrix3x3_SetScale()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix3x3 * )
Q3Matrix3x3_SetScale(
TQ3Matrix3x3 * matrix3x3,
float xScale,
float yScale);
/*
* Q3Matrix3x3_SetRotateAboutPoint()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix3x3 * )
Q3Matrix3x3_SetRotateAboutPoint(
TQ3Matrix3x3 * matrix3x3,
const TQ3Point2D * origin,
float angle);
/*
* Q3Matrix4x4_SetTranslate()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix4x4 * )
Q3Matrix4x4_SetTranslate(
TQ3Matrix4x4 * matrix4x4,
float xTrans,
float yTrans,
float zTrans);
/*
* Q3Matrix4x4_SetScale()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix4x4 * )
Q3Matrix4x4_SetScale(
TQ3Matrix4x4 * matrix4x4,
float xScale,
float yScale,
float zScale);
/*
* Q3Matrix4x4_SetRotateAboutPoint()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix4x4 * )
Q3Matrix4x4_SetRotateAboutPoint(
TQ3Matrix4x4 * matrix4x4,
const TQ3Point3D * origin,
float xAngle,
float yAngle,
float zAngle);
/*
* Q3Matrix4x4_SetRotateAboutAxis()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix4x4 * )
Q3Matrix4x4_SetRotateAboutAxis(
TQ3Matrix4x4 * matrix4x4,
const TQ3Point3D * origin,
const TQ3Vector3D * orientation,
float angle);
/*
* Q3Matrix4x4_SetRotate_X()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix4x4 * )
Q3Matrix4x4_SetRotate_X(
TQ3Matrix4x4 * matrix4x4,
float angle);
/*
* Q3Matrix4x4_SetRotate_Y()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix4x4 * )
Q3Matrix4x4_SetRotate_Y(
TQ3Matrix4x4 * matrix4x4,
float angle);
/*
* Q3Matrix4x4_SetRotate_Z()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix4x4 * )
Q3Matrix4x4_SetRotate_Z(
TQ3Matrix4x4 * matrix4x4,
float angle);
/*
* Q3Matrix4x4_SetRotate_XYZ()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix4x4 * )
Q3Matrix4x4_SetRotate_XYZ(
TQ3Matrix4x4 * matrix4x4,
float xAngle,
float yAngle,
float zAngle);
/*
* Q3Matrix4x4_SetRotateVectorToVector()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix4x4 * )
Q3Matrix4x4_SetRotateVectorToVector(
TQ3Matrix4x4 * matrix4x4,
const TQ3Vector3D * v1,
const TQ3Vector3D * v2);
/*
* Q3Matrix4x4_SetQuaternion()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Matrix4x4 * )
Q3Matrix4x4_SetQuaternion(
TQ3Matrix4x4 * matrix,
const TQ3Quaternion * quaternion);
/*
* Q3Matrix3x3_Determinant()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( float )
Q3Matrix3x3_Determinant(const TQ3Matrix3x3 * matrix3x3);
/*
* Q3Matrix4x4_Determinant()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( float )
Q3Matrix4x4_Determinant(const TQ3Matrix4x4 * matrix4x4);
/******************************************************************************
** **
** Quaternion Routines **
** **
*****************************************************************************/
/*
* Q3Quaternion_Set()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Quaternion * )
Q3Quaternion_Set(
TQ3Quaternion * quaternion,
float w,
float x,
float y,
float z);
/*
* Q3Quaternion_SetIdentity()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Quaternion * )
Q3Quaternion_SetIdentity(TQ3Quaternion * quaternion);
/*
* Q3Quaternion_Copy()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Quaternion * )
Q3Quaternion_Copy(
const TQ3Quaternion * quaternion,
TQ3Quaternion * result);
/*
* Q3Quaternion_IsIdentity()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Boolean )
Q3Quaternion_IsIdentity(const TQ3Quaternion * quaternion);
/*
* Q3Quaternion_Invert()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Quaternion * )
Q3Quaternion_Invert(
const TQ3Quaternion * quaternion,
TQ3Quaternion * result);
/*
* Q3Quaternion_Normalize()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Quaternion * )
Q3Quaternion_Normalize(
const TQ3Quaternion * quaternion,
TQ3Quaternion * result);
/*
* Q3Quaternion_Dot()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( float )
Q3Quaternion_Dot(
const TQ3Quaternion * q1,
const TQ3Quaternion * q2);
/*
* Q3Quaternion_Multiply()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Quaternion * )
Q3Quaternion_Multiply(
const TQ3Quaternion * q1,
const TQ3Quaternion * q2,
TQ3Quaternion * result);
/*
* Q3Quaternion_SetRotateAboutAxis()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Quaternion * )
Q3Quaternion_SetRotateAboutAxis(
TQ3Quaternion * quaternion,
const TQ3Vector3D * axis,
float angle);
/*
* Q3Quaternion_SetRotate_XYZ()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Quaternion * )
Q3Quaternion_SetRotate_XYZ(
TQ3Quaternion * quaternion,
float xAngle,
float yAngle,
float zAngle);
/*
* Q3Quaternion_SetRotate_X()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Quaternion * )
Q3Quaternion_SetRotate_X(
TQ3Quaternion * quaternion,
float angle);
/*
* Q3Quaternion_SetRotate_Y()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Quaternion * )
Q3Quaternion_SetRotate_Y(
TQ3Quaternion * quaternion,
float angle);
/*
* Q3Quaternion_SetRotate_Z()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Quaternion * )
Q3Quaternion_SetRotate_Z(
TQ3Quaternion * quaternion,
float angle);
/*
* Q3Quaternion_SetMatrix()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Quaternion * )
Q3Quaternion_SetMatrix(
TQ3Quaternion * quaternion,
const TQ3Matrix4x4 * matrix);
/*
* Q3Quaternion_SetRotateVectorToVector()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Quaternion * )
Q3Quaternion_SetRotateVectorToVector(
TQ3Quaternion * quaternion,
const TQ3Vector3D * v1,
const TQ3Vector3D * v2);
/*
* Q3Quaternion_MatchReflection()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Quaternion * )
Q3Quaternion_MatchReflection(
const TQ3Quaternion * q1,
const TQ3Quaternion * q2,
TQ3Quaternion * result);
/*
* Q3Quaternion_InterpolateFast()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Quaternion * )
Q3Quaternion_InterpolateFast(
const TQ3Quaternion * q1,
const TQ3Quaternion * q2,
float t,
TQ3Quaternion * result);
/*
* Q3Quaternion_InterpolateLinear()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Quaternion * )
Q3Quaternion_InterpolateLinear(
const TQ3Quaternion * q1,
const TQ3Quaternion * q2,
float t,
TQ3Quaternion * result);
/*
* Q3Vector3D_TransformQuaternion()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Vector3D * )
Q3Vector3D_TransformQuaternion(
const TQ3Vector3D * vector3D,
const TQ3Quaternion * quaternion,
TQ3Vector3D * result);
/*
* Q3Point3D_TransformQuaternion()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Point3D * )
Q3Point3D_TransformQuaternion(
const TQ3Point3D * point3D,
const TQ3Quaternion * quaternion,
TQ3Point3D * result);
/******************************************************************************
** **
** Volume Routines **
** **
*****************************************************************************/
/*
* Q3BoundingBox_Copy()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3BoundingBox * )
Q3BoundingBox_Copy(
const TQ3BoundingBox * src,
TQ3BoundingBox * dest);
/*
* Q3BoundingBox_Union()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3BoundingBox * )
Q3BoundingBox_Union(
const TQ3BoundingBox * v1,
const TQ3BoundingBox * v2,
TQ3BoundingBox * result);
/*
* Q3BoundingBox_Set()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3BoundingBox * )
Q3BoundingBox_Set(
TQ3BoundingBox * bBox,
const TQ3Point3D * min,
const TQ3Point3D * max,
TQ3Boolean isEmpty);
/*
* Q3BoundingBox_UnionPoint3D()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3BoundingBox * )
Q3BoundingBox_UnionPoint3D(
const TQ3BoundingBox * bBox,
const TQ3Point3D * point3D,
TQ3BoundingBox * result);
/*
* Q3BoundingBox_UnionRationalPoint4D()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3BoundingBox * )
Q3BoundingBox_UnionRationalPoint4D(
const TQ3BoundingBox * bBox,
const TQ3RationalPoint4D * point4D,
TQ3BoundingBox * result);
/*
* Q3BoundingBox_SetFromPoints3D()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3BoundingBox * )
Q3BoundingBox_SetFromPoints3D(
TQ3BoundingBox * bBox,
const TQ3Point3D * points3D,
unsigned long numPoints,
unsigned long structSize);
/*
* Q3BoundingBox_SetFromRationalPoints4D()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3BoundingBox * )
Q3BoundingBox_SetFromRationalPoints4D(
TQ3BoundingBox * bBox,
const TQ3RationalPoint4D * points4D,
unsigned long numPoints,
unsigned long structSize);
/******************************************************************************
** **
** Sphere Routines **
** **
*****************************************************************************/
/*
* Q3BoundingSphere_Copy()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3BoundingSphere * )
Q3BoundingSphere_Copy(
const TQ3BoundingSphere * src,
TQ3BoundingSphere * dest);
/*
* Q3BoundingSphere_Union()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3BoundingSphere * )
Q3BoundingSphere_Union(
const TQ3BoundingSphere * s1,
const TQ3BoundingSphere * s2,
TQ3BoundingSphere * result);
/*
* Q3BoundingSphere_Set()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3BoundingSphere * )
Q3BoundingSphere_Set(
TQ3BoundingSphere * bSphere,
const TQ3Point3D * origin,
float radius,
TQ3Boolean isEmpty);
/*
* Q3BoundingSphere_UnionPoint3D()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3BoundingSphere * )
Q3BoundingSphere_UnionPoint3D(
const TQ3BoundingSphere * bSphere,
const TQ3Point3D * point3D,
TQ3BoundingSphere * result);
/*
* Q3BoundingSphere_UnionRationalPoint4D()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3BoundingSphere * )
Q3BoundingSphere_UnionRationalPoint4D(
const TQ3BoundingSphere * bSphere,
const TQ3RationalPoint4D * point4D,
TQ3BoundingSphere * result);
/*
* Q3BoundingSphere_SetFromPoints3D()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3BoundingSphere * )
Q3BoundingSphere_SetFromPoints3D(
TQ3BoundingSphere * bSphere,
const TQ3Point3D * points3D,
unsigned long numPoints,
unsigned long structSize);
/*
* Q3BoundingSphere_SetFromRationalPoints4D()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3BoundingSphere * )
Q3BoundingSphere_SetFromRationalPoints4D(
TQ3BoundingSphere * bSphere,
const TQ3RationalPoint4D * points4D,
unsigned long numPoints,
unsigned long structSize);
#endif /* CALL_NOT_IN_CARBON */
#if PRAGMA_ENUM_ALWAYSINT
#pragma enumsalwaysint reset
#ifdef __QD3DMATH__RESTORE_TWOBYTEINTS
#pragma fourbyteints off
#endif
#elif PRAGMA_ENUM_OPTIONS
#pragma option enum=reset
#elif defined(__QD3DMATH__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 /* __QD3DMATH__ */