forked from bartvdbraak/blender
40 lines
1.3 KiB
C
40 lines
1.3 KiB
C
|
/*
|
||
|
* Copyright (c) 2001-2005 Erwin Coumans <phy@erwincoumans.com>
|
||
|
*
|
||
|
* Permission to use, copy, modify, distribute and sell this software
|
||
|
* and its documentation for any purpose is hereby granted without fee,
|
||
|
* provided that the above copyright notice appear in all copies and
|
||
|
* that both that copyright notice and this permission notice appear
|
||
|
* in supporting documentation. Erwin Coumans makes no
|
||
|
* representations about the suitability of this software for any
|
||
|
* purpose. It is provided "as is" without express or implied warranty.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#ifndef PHY__MOTIONSTATE_H
|
||
|
#define PHY__MOTIONSTATE_H
|
||
|
|
||
|
/**
|
||
|
PHY_IMotionState is the Interface to explicitly synchronize the world transformation.
|
||
|
Default implementations for mayor graphics libraries like OpenGL and DirectX can be provided.
|
||
|
*/
|
||
|
class PHY_IMotionState
|
||
|
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
virtual ~PHY_IMotionState();
|
||
|
|
||
|
virtual void getWorldPosition(float& posX,float& posY,float& posZ)=0;
|
||
|
virtual void getWorldScaling(float& scaleX,float& scaleY,float& scaleZ)=0;
|
||
|
virtual void getWorldOrientation(float& quatIma0,float& quatIma1,float& quatIma2,float& quatReal)=0;
|
||
|
|
||
|
virtual void setWorldPosition(float posX,float posY,float posZ)=0;
|
||
|
virtual void setWorldOrientation(float quatIma0,float quatIma1,float quatIma2,float quatReal)=0;
|
||
|
|
||
|
virtual void calculateWorldTransformations()=0;
|
||
|
};
|
||
|
|
||
|
#endif //PHY__MOTIONSTATE_H
|
||
|
|