orx  1.14
Portable Game Engine
OrxFrame

Macros

#define orxFRAME_KU32_FLAG_DEPTH_SCALE   0x00000004
 
#define orxFRAME_KU32_FLAG_FLIP_X   0x00000010
 
#define orxFRAME_KU32_FLAG_FLIP_Y   0x00000020
 
#define orxFRAME_KU32_FLAG_IGNORE_NONE   0x00000000
 
#define orxFRAME_KU32_FLAG_IGNORE_POSITION_POSITION_X   0x00010000
 
#define orxFRAME_KU32_FLAG_IGNORE_POSITION_POSITION_Y   0x00020000
 
#define orxFRAME_KU32_FLAG_IGNORE_POSITION_POSITION_Z   0x00040000
 
#define orxFRAME_KU32_FLAG_IGNORE_POSITION_ROTATION   0x00001000
 
#define orxFRAME_KU32_FLAG_IGNORE_POSITION_SCALE_X   0x00002000
 
#define orxFRAME_KU32_FLAG_IGNORE_POSITION_SCALE_Y   0x00004000
 
#define orxFRAME_KU32_FLAG_IGNORE_POSITION_SCALE_Z   0x00008000
 
#define orxFRAME_KU32_FLAG_IGNORE_ROTATION   0x00000100
 
#define orxFRAME_KU32_FLAG_IGNORE_SCALE_X   0x00000200
 
#define orxFRAME_KU32_FLAG_IGNORE_SCALE_Y   0x00000400
 
#define orxFRAME_KU32_FLAG_IGNORE_SCALE_Z   0x00000800
 
#define orxFRAME_KU32_FLAG_NONE   0x00000000
 
#define orxFRAME_KU32_FLAG_SCROLL_X   0x00000001
 
#define orxFRAME_KU32_FLAG_SCROLL_Y   0x00000002
 
#define orxFRAME_KU32_MASK_FLIP_BOTH   0x00000030
 
#define orxFRAME_KU32_MASK_IGNORE_ALL   0x0007FF00
 
#define orxFRAME_KU32_MASK_IGNORE_POSITION   0x0007F000
 
#define orxFRAME_KU32_MASK_IGNORE_POSITION_POSITION   0x00070000
 
#define orxFRAME_KU32_MASK_IGNORE_POSITION_SCALE   0x0000E000
 
#define orxFRAME_KU32_MASK_IGNORE_SCALE   0x00000E00
 
#define orxFRAME_KU32_MASK_SCROLL_BOTH   0x00000003
 
#define orxFRAME_KU32_MASK_USER_ALL   0x0007FFFF
 

Typedefs

typedef struct __orxFRAME_t orxFRAME
 

Enumerations

enum  orxFRAME_SPACE { orxFRAME_SPACE_GLOBAL = 0, orxFRAME_SPACE_LOCAL, orxFRAME_SPACE_NUMBER, orxFRAME_SPACE_NONE = orxENUM_NONE }
 

Functions

orxDLLAPI orxFRAME *orxFASTCALL orxFrame_Create (orxU32 _u32Flags)
 
orxDLLAPI orxSTATUS orxFASTCALL orxFrame_Delete (orxFRAME *_pstFrame)
 
orxDLLAPI void orxFASTCALL orxFrame_Exit ()
 
orxDLLAPI orxFRAME *orxFASTCALL orxFrame_GetChild (const orxFRAME *_pstFrame)
 
orxDLLAPI const orxSTRING orxFASTCALL orxFrame_GetIgnoreFlagNames (orxU32 _u32Flags)
 
orxDLLAPI orxU32 orxFASTCALL orxFrame_GetIgnoreFlagValues (const orxSTRING _zFlags)
 
orxDLLAPI orxFRAME *orxFASTCALL orxFrame_GetParent (const orxFRAME *_pstFrame)
 
orxDLLAPI orxVECTOR *orxFASTCALL orxFrame_GetPosition (orxFRAME *_pstFrame, orxFRAME_SPACE _eSpace, orxVECTOR *_pvPos)
 
orxDLLAPI orxFLOAT orxFASTCALL orxFrame_GetRotation (orxFRAME *_pstFrame, orxFRAME_SPACE _eSpace)
 
orxDLLAPI orxVECTOR *orxFASTCALL orxFrame_GetScale (orxFRAME *_pstFrame, orxFRAME_SPACE _eSpace, orxVECTOR *_pvScale)
 
orxDLLAPI orxFRAME *orxFASTCALL orxFrame_GetSibling (const orxFRAME *_pstFrame)
 
orxDLLAPI orxSTATUS orxFASTCALL orxFrame_Init ()
 
orxDLLAPI orxBOOL orxFASTCALL orxFrame_IsRootChild (const orxFRAME *_pstFrame)
 
orxDLLAPI void orxFASTCALL orxFrame_SetParent (orxFRAME *_pstFrame, orxFRAME *_pstParent)
 
orxDLLAPI void orxFASTCALL orxFrame_SetPosition (orxFRAME *_pstFrame, orxFRAME_SPACE _eSpace, const orxVECTOR *_pvPos)
 
orxDLLAPI void orxFASTCALL orxFrame_SetRotation (orxFRAME *_pstFrame, orxFRAME_SPACE _eSpace, orxFLOAT _fRotation)
 
orxDLLAPI void orxFASTCALL orxFrame_SetScale (orxFRAME *_pstFrame, orxFRAME_SPACE _eSpace, const orxVECTOR *_pvScale)
 
orxDLLAPI void orxFASTCALL orxFrame_Setup ()
 
orxDLLAPI orxVECTOR *orxFASTCALL orxFrame_TransformPosition (orxFRAME *_pstFrame, orxFRAME_SPACE _eSpace, orxVECTOR *_pvPos)
 
orxDLLAPI orxFLOAT orxFASTCALL orxFrame_TransformRotation (orxFRAME *_pstFrame, orxFRAME_SPACE _eSpace, orxFLOAT _fRotation)
 
orxDLLAPI orxVECTOR *orxFASTCALL orxFrame_TransformScale (orxFRAME *_pstFrame, orxFRAME_SPACE _eSpace, orxVECTOR *_pvScale)
 

Detailed Description

Frame (scene node) Module. Allows to handles frame (scene nodes). It consists in a nodes (arranged in a hierarchical tree) having their position given in their parent local coordinate subsystem and caching their global one (in the root coordinate system). They're used to give position, rotation & scale to an object or a group of objects. Frames are structures. They thus can be referenced by Object Module.

Macro Definition Documentation

#define orxFRAME_KU32_FLAG_DEPTH_SCALE   0x00000004

Relative depth scaling flag

Definition at line 67 of file orxFrame.h.

#define orxFRAME_KU32_FLAG_FLIP_X   0x00000010

X axis flipping flag

Definition at line 69 of file orxFrame.h.

#define orxFRAME_KU32_FLAG_FLIP_Y   0x00000020

Y axis flipping flag

Definition at line 70 of file orxFrame.h.

#define orxFRAME_KU32_FLAG_IGNORE_NONE   0x00000000

Rotation, scale and position are affected by parent

Definition at line 73 of file orxFrame.h.

#define orxFRAME_KU32_FLAG_IGNORE_POSITION_POSITION_X   0x00010000

Position is unaffected by parent's position on X axis

Definition at line 84 of file orxFrame.h.

#define orxFRAME_KU32_FLAG_IGNORE_POSITION_POSITION_Y   0x00020000

Position is unaffected by parent's position on Y axis

Definition at line 85 of file orxFrame.h.

#define orxFRAME_KU32_FLAG_IGNORE_POSITION_POSITION_Z   0x00040000

Position is unaffected by parent's position on Z axis

Definition at line 86 of file orxFrame.h.

#define orxFRAME_KU32_FLAG_IGNORE_POSITION_ROTATION   0x00001000

Position is unaffected by parent's rotation

Definition at line 79 of file orxFrame.h.

#define orxFRAME_KU32_FLAG_IGNORE_POSITION_SCALE_X   0x00002000

Position is unaffected by parent's scale on X axis

Definition at line 80 of file orxFrame.h.

#define orxFRAME_KU32_FLAG_IGNORE_POSITION_SCALE_Y   0x00004000

Position is unaffected by parent's scale on Y axis

Definition at line 81 of file orxFrame.h.

#define orxFRAME_KU32_FLAG_IGNORE_POSITION_SCALE_Z   0x00008000

Position is unaffected by parent's scale on Z axis

Definition at line 82 of file orxFrame.h.

#define orxFRAME_KU32_FLAG_IGNORE_ROTATION   0x00000100

Rotation is unaffected by parent

Definition at line 74 of file orxFrame.h.

#define orxFRAME_KU32_FLAG_IGNORE_SCALE_X   0x00000200

Scale is unaffected by parent on X axis

Definition at line 75 of file orxFrame.h.

#define orxFRAME_KU32_FLAG_IGNORE_SCALE_Y   0x00000400

Scale is unaffected by parent on Y axis

Definition at line 76 of file orxFrame.h.

#define orxFRAME_KU32_FLAG_IGNORE_SCALE_Z   0x00000800

Scale is unaffected by parent on Z axis

Definition at line 77 of file orxFrame.h.

#define orxFRAME_KU32_FLAG_NONE   0x00000000

Frame flagsNo flags

Definition at line 61 of file orxFrame.h.

#define orxFRAME_KU32_FLAG_SCROLL_X   0x00000001

X axis differential scrolling flag

Definition at line 63 of file orxFrame.h.

#define orxFRAME_KU32_FLAG_SCROLL_Y   0x00000002

Y axis differential scrolling flag

Definition at line 64 of file orxFrame.h.

#define orxFRAME_KU32_MASK_FLIP_BOTH   0x00000030

Both axis flippinf mask

Definition at line 71 of file orxFrame.h.

#define orxFRAME_KU32_MASK_IGNORE_ALL   0x0007FF00

Rotation, scale and position are unaffected by parent

Definition at line 89 of file orxFrame.h.

#define orxFRAME_KU32_MASK_IGNORE_POSITION   0x0007F000

Position is unaffected by parent

Definition at line 88 of file orxFrame.h.

#define orxFRAME_KU32_MASK_IGNORE_POSITION_POSITION   0x00070000

Position is unaffected by parent's position

Definition at line 87 of file orxFrame.h.

#define orxFRAME_KU32_MASK_IGNORE_POSITION_SCALE   0x0000E000

Position is unaffected by parent's scale

Definition at line 83 of file orxFrame.h.

#define orxFRAME_KU32_MASK_IGNORE_SCALE   0x00000E00

Scale is unaffected by parent

Definition at line 78 of file orxFrame.h.

#define orxFRAME_KU32_MASK_SCROLL_BOTH   0x00000003

Both axis differential scrolling mask

Definition at line 65 of file orxFrame.h.

#define orxFRAME_KU32_MASK_USER_ALL   0x0007FFFF

User all ID mask

Definition at line 91 of file orxFrame.h.

Typedef Documentation

typedef struct __orxFRAME_t orxFRAME

Internal Frame structure

Definition at line 110 of file orxFrame.h.

Enumeration Type Documentation

Frame space enum

Enumerator
orxFRAME_SPACE_GLOBAL 
orxFRAME_SPACE_LOCAL 
orxFRAME_SPACE_NUMBER 
orxFRAME_SPACE_NONE 

Definition at line 96 of file orxFrame.h.

Function Documentation

orxDLLAPI orxFRAME* orxFASTCALL orxFrame_Create ( orxU32  _u32Flags)

Creates a frame

Parameters
[in]_u32FlagsFlags for created animation
Returns
Created orxFRAME / orxNULL
orxDLLAPI orxSTATUS orxFASTCALL orxFrame_Delete ( orxFRAME _pstFrame)

Deletes a frame

Parameters
[in]_pstFrameFrame to delete
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI void orxFASTCALL orxFrame_Exit ( )

Exits from the frame module

orxDLLAPI orxFRAME* orxFASTCALL orxFrame_GetChild ( const orxFRAME _pstFrame)

Gets frame first child

Parameters
[in]_pstFrameConcerned frame
Returns
orxFRAME / orxNULL
orxDLLAPI const orxSTRING orxFASTCALL orxFrame_GetIgnoreFlagNames ( orxU32  _u32Flags)

Get ignore flag names (beware: result won't persist from one call to the other)

Parameters
[in]_u32FlagsLiteral ignore flags
Returns
Ignore flags names
orxDLLAPI orxU32 orxFASTCALL orxFrame_GetIgnoreFlagValues ( const orxSTRING  _zFlags)

Get ignore flag values

Parameters
[in]_zFlagsLiteral ignore flags
Returns
Ignore flags
orxDLLAPI orxFRAME* orxFASTCALL orxFrame_GetParent ( const orxFRAME _pstFrame)

Get frame parent

Parameters
[in]_pstFrameConcerned frame
Returns
orxFRAME / orxNULL
orxDLLAPI orxVECTOR* orxFASTCALL orxFrame_GetPosition ( orxFRAME _pstFrame,
orxFRAME_SPACE  _eSpace,
orxVECTOR _pvPos 
)

Gets frame position

Parameters
[in]_pstFrameConcerned frame
[in]_eSpaceCoordinate space system to use
[out]_pvPosPosition of the given frame
Returns
orxVECTOR / orxNULL
orxDLLAPI orxFLOAT orxFASTCALL orxFrame_GetRotation ( orxFRAME _pstFrame,
orxFRAME_SPACE  _eSpace 
)

Gets frame rotation

Parameters
[in]_pstFrameConcerned frame
[in]_eSpaceCoordinate space system to use
Returns
Rotation of the given frame (radians)
orxDLLAPI orxVECTOR* orxFASTCALL orxFrame_GetScale ( orxFRAME _pstFrame,
orxFRAME_SPACE  _eSpace,
orxVECTOR _pvScale 
)

Gets frame scale

Parameters
[in]_pstFrameConcerned frame
[in]_eSpaceCoordinate space system to use
[out]_pvScaleScale
Returns
orxVECTOR / orxNULL
orxDLLAPI orxFRAME* orxFASTCALL orxFrame_GetSibling ( const orxFRAME _pstFrame)

Gets frame next sibling

Parameters
[in]_pstFrameConcerned frame
Returns
orxFRAME / orxNULL
orxDLLAPI orxSTATUS orxFASTCALL orxFrame_Init ( )

Inits the frame module

Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxBOOL orxFASTCALL orxFrame_IsRootChild ( const orxFRAME _pstFrame)

Is a root child?

Parameters
[in]_pstFrameConcerned frame
Returns
orxTRUE if its parent is root, orxFALSE otherwise
orxDLLAPI void orxFASTCALL orxFrame_SetParent ( orxFRAME _pstFrame,
orxFRAME _pstParent 
)

Sets frame parent

Parameters
[in]_pstFrameConcerned frame
[in]_pstParentParent frame to set
orxDLLAPI void orxFASTCALL orxFrame_SetPosition ( orxFRAME _pstFrame,
orxFRAME_SPACE  _eSpace,
const orxVECTOR _pvPos 
)

Sets frame position

Parameters
[in]_pstFrameConcerned frame
[in]_eSpaceCoordinate space system to use
[in]_pvPosPosition to set
orxDLLAPI void orxFASTCALL orxFrame_SetRotation ( orxFRAME _pstFrame,
orxFRAME_SPACE  _eSpace,
orxFLOAT  _fRotation 
)

Sets frame rotation

Parameters
[in]_pstFrameConcerned frame
[in]_eSpaceCoordinate space system to use
[in]_fRotationRotation angle to set (radians)
orxDLLAPI void orxFASTCALL orxFrame_SetScale ( orxFRAME _pstFrame,
orxFRAME_SPACE  _eSpace,
const orxVECTOR _pvScale 
)

Sets frame scale

Parameters
[in]_pstFrameConcerned frame
[in]_eSpaceCoordinate space system to use
[in]_pvScaleScale to set
orxDLLAPI void orxFASTCALL orxFrame_Setup ( )

Setups the frame module

orxDLLAPI orxVECTOR* orxFASTCALL orxFrame_TransformPosition ( orxFRAME _pstFrame,
orxFRAME_SPACE  _eSpace,
orxVECTOR _pvPos 
)

Transforms a position given its input space (local -> global or global -> local)

Parameters
[in]_pstFrameConcerned frame
[in]_eSpaceInput coordinate space system to use
[out]_pvPosConcerned position
Returns
orxVECTOR / orxNULL
orxDLLAPI orxFLOAT orxFASTCALL orxFrame_TransformRotation ( orxFRAME _pstFrame,
orxFRAME_SPACE  _eSpace,
orxFLOAT  _fRotation 
)

Transforms a rotation given its input space (local -> global or global -> local)

Parameters
[in]_pstFrameConcerned frame
[in]_eSpaceInput coordinate space system to use
[out]_fRotationConcerned rotation
Returns
Transformed rotation (radians)
orxDLLAPI orxVECTOR* orxFASTCALL orxFrame_TransformScale ( orxFRAME _pstFrame,
orxFRAME_SPACE  _eSpace,
orxVECTOR _pvScale 
)

Transforms a scale given its input space (local -> global or global -> local)

Parameters
[in]_pstFrameConcerned frame
[in]_eSpaceInput coordinate space system to use
[out]_pvScaleConcerned scale
Returns
orxVECTOR / orxNULL

Generated for orx by doxygen 1.8.11