Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

563 lines
12 KiB

/*
File: CGGeometry.h
Contains: CoreGraphics geometry
Version: QuickTime 7.3
Copyright: (c) 2007 (c) 2000-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 CGGEOMETRY_H_
#define CGGEOMETRY_H_
#ifndef __CGBASE__
#include <CGBase.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=mac68k
#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 __CGGEOMETRY__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 __CGGEOMETRY__RESTORE_PACKED_ENUMS
#pragma options(!pack_enums)
#endif
#endif
/* Points. */
struct CGPoint {
float x;
float y;
};
typedef struct CGPoint CGPoint;
/* Sizes. */
struct CGSize {
float width;
float height;
};
typedef struct CGSize CGSize;
/* Rectangles. */
struct CGRect {
CGPoint origin;
CGSize size;
};
typedef struct CGRect CGRect;
/* Rectangle edges. */
enum CGRectEdge {
CGRectMinXEdge = 0,
CGRectMinYEdge = 1,
CGRectMaxXEdge = 2,
CGRectMaxYEdge = 3
};
typedef enum CGRectEdge CGRectEdge;
#if TARGET_OS_MAC
/* The "zero" point -- equivalent to CGPointMake(0, 0). */
/*
* CGPointZero
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
extern const CGPoint CGPointZero;
/* The "zero" size -- equivalent to CGSizeMake(0, 0). */
/*
* CGSizeZero
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
extern const CGSize CGSizeZero;
/* The "zero" rectangle -- equivalent to CGRectMake(0, 0, 0, 0). */
/*
* CGRectZero
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
extern const CGRect CGRectZero;
/* The "empty" rect. This is the rectangle returned when, for example, we
* intersect two disjoint rectangles. Note that the null rect is not the
* same as the zero rect. */
/*
* CGRectNull
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
extern const CGRect CGRectNull;
#else
#define CGPointZero CGPointMake(0, 0)
#define CGSizeZero CGSizeMake(0, 0)
#define CGRectZero CGRectMake(0, 0, 0, 0)
#define CGRectNull CGRectMake(INFINITY, INFINITY, 0, 0)
#endif
/* Make a point from `(x, y)'. */
/*
* CGPointMake()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( CGPoint )
CGPointMake(
float x,
float y);
/* Make a size from `(width, height)'. */
/*
* CGSizeMake()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( CGSize )
CGSizeMake(
float width,
float height);
/* Make a rect from `(x, y; width, height)'. */
/*
* CGRectMake()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( CGRect )
CGRectMake(
float x,
float y,
float width,
float height);
/* Return the leftmost x-value of `rect'. */
/*
* CGRectGetMinX()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( float )
CGRectGetMinX(CGRect rect);
/* Return the midpoint x-value of `rect'. */
/*
* CGRectGetMidX()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( float )
CGRectGetMidX(CGRect rect);
/* Return the rightmost x-value of `rect'. */
/*
* CGRectGetMaxX()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( float )
CGRectGetMaxX(CGRect rect);
/* Return the bottommost y-value of `rect'. */
/*
* CGRectGetMinY()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( float )
CGRectGetMinY(CGRect rect);
/* Return the midpoint y-value of `rect'. */
/*
* CGRectGetMidY()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( float )
CGRectGetMidY(CGRect rect);
/* Return the topmost y-value of `rect'. */
/*
* CGRectGetMaxY()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( float )
CGRectGetMaxY(CGRect rect);
/* Return the width of `rect'. */
/*
* CGRectGetWidth()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( float )
CGRectGetWidth(CGRect rect);
/* Return the height of `rect'. */
/*
* CGRectGetHeight()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( float )
CGRectGetHeight(CGRect rect);
/* Return 1 if `point1' and `point2' are the same, 0 otherwise. */
/*
* CGPointEqualToPoint()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( int )
CGPointEqualToPoint(
CGPoint point1,
CGPoint point2);
/* Return 1 if `size1' and `size2' are the same, 0 otherwise. */
/*
* CGSizeEqualToSize()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( int )
CGSizeEqualToSize(
CGSize size1,
CGSize size2);
/* Return 1 if `rect1' and `rect2' are the same, 0 otherwise. */
/*
* CGRectEqualToRect()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( int )
CGRectEqualToRect(
CGRect rect1,
CGRect rect2);
/* Standardize `rect' -- i.e., convert it to an equivalent rect which has
* positive width and height. */
/*
* CGRectStandardize()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( CGRect )
CGRectStandardize(CGRect rect);
/* Return 1 if `rect' is empty -- i.e., if it has zero width or height. A
* null rect is defined to be empty. */
/*
* CGRectIsEmpty()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( int )
CGRectIsEmpty(CGRect rect);
/* Return 1 if `rect' is null -- e.g., the result of intersecting two
* disjoint rectangles is a null rect. */
/*
* CGRectIsNull()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( int )
CGRectIsNull(CGRect rect);
/* Inset `rect' by `(dx, dy)' -- i.e., offset its origin by `(dx, dy)', and
* decrease its size by `(2*dx, 2*dy)'. */
/*
* CGRectInset()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( CGRect )
CGRectInset(
CGRect rect,
float dx,
float dy);
/* Expand `rect' to the smallest rect containing it with integral origin
* and size. */
/*
* CGRectIntegral()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( CGRect )
CGRectIntegral(CGRect rect);
/* Return the union of `r1' and `r2'. */
/*
* CGRectUnion()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( CGRect )
CGRectUnion(
CGRect r1,
CGRect r2);
/* Return the intersection of `r1' and `r2'. This may return a null
* rect. */
/*
* CGRectIntersection()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( CGRect )
CGRectIntersection(
CGRect r1,
CGRect r2);
/* Offset `rect' by `(dx, dy)'. */
/*
* CGRectOffset()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( CGRect )
CGRectOffset(
CGRect rect,
float dx,
float dy);
/* Make two new rectangles, `slice' and `remainder', by dividing `rect'
* with a line that's parallel to one of its sides, specified by `edge' --
* either `CGRectMinXEdge', `CGRectMinYEdge', `CGRectMaxXEdge', or
* `CGRectMaxYEdge'. The size of `slice' is determined by `amount', which
* measures the distance from the specified edge. */
/*
* CGRectDivide()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( void )
CGRectDivide(
CGRect rect,
CGRect * slice,
CGRect * remainder,
float amount,
CGRectEdge edge);
/* Return 1 if `point' is contained in `rect', 0 otherwise. */
/*
* CGRectContainsPoint()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( int )
CGRectContainsPoint(
CGRect rect,
CGPoint point);
/* Return 1 if `rect2' is contained in `rect1', 0 otherwise. `rect2' is
* contained in `rect1' if the union of `rect1' and `rect2' is equal to
* `rect1'. */
/*
* CGRectContainsRect()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( int )
CGRectContainsRect(
CGRect rect1,
CGRect rect2);
/* Return 1 if `rect1' intersects `rect2', 0 otherwise. `rect1' intersects
* `rect2' if the intersection of `rect1' and `rect2' is not the null
* rect. */
/*
* CGRectIntersectsRect()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( int )
CGRectIntersectsRect(
CGRect rect1,
CGRect rect2);
#if PRAGMA_ENUM_ALWAYSINT
#pragma enumsalwaysint reset
#ifdef __CGGEOMETRY__RESTORE_TWOBYTEINTS
#pragma fourbyteints off
#endif
#elif PRAGMA_ENUM_OPTIONS
#pragma option enum=reset
#elif defined(__CGGEOMETRY__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 /* CGGEOMETRY_H_ */