CustomBodyState::ApplyForwarding(..) added
This commit is contained in:
parent
9aa584acc7
commit
c4bbc09a97
|
@ -41,7 +41,8 @@ namespace Oyster { namespace Physics
|
|||
this->linearMomentum = linearMomentum;
|
||||
this->angularMomentum = angularMomentum;
|
||||
this->linearImpulse = this->angularImpulse = ::Oyster::Math::Float4::null;
|
||||
this->isSpatiallyAltered = this->isDisturbed = false;
|
||||
this->deltaPos = this->deltaAxis = ::Oyster::Math::Float4::null;
|
||||
this->isSpatiallyAltered = this->isDisturbed = this->isForwarded = false;
|
||||
}
|
||||
|
||||
inline CustomBodyState & CustomBodyState::operator = ( const CustomBodyState &state )
|
||||
|
@ -58,8 +59,11 @@ namespace Oyster { namespace Physics
|
|||
this->angularMomentum = state.angularMomentum;
|
||||
this->linearImpulse = state.linearImpulse;
|
||||
this->angularImpulse = state.angularImpulse;
|
||||
this->deltaPos = state.deltaPos;
|
||||
this->deltaAxis = state.deltaAxis;
|
||||
this->isSpatiallyAltered = state.isSpatiallyAltered;
|
||||
this->isDisturbed = state.isDisturbed;
|
||||
this->isForwarded = state.isForwarded;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
@ -149,6 +153,16 @@ namespace Oyster { namespace Physics
|
|||
return this->angularImpulse;
|
||||
}
|
||||
|
||||
inline const ::Oyster::Math::Float4 & CustomBodyState::GetForward_DeltaPos() const
|
||||
{
|
||||
return this->deltaPos;
|
||||
}
|
||||
|
||||
inline const ::Oyster::Math::Float4 & CustomBodyState::GetForward_DeltaAxis() const
|
||||
{
|
||||
return this->deltaAxis;
|
||||
}
|
||||
|
||||
inline void CustomBodyState::SetMass_KeepMomentum( ::Oyster::Math::Float m )
|
||||
{
|
||||
this->mass = m;
|
||||
|
@ -287,6 +301,13 @@ namespace Oyster { namespace Physics
|
|||
this->isDisturbed = true;
|
||||
}
|
||||
|
||||
inline void CustomBodyState::ApplyForwarding( const ::Oyster::Math::Float4 &deltaPos, const ::Oyster::Math::Float4 &deltaAxis )
|
||||
{
|
||||
this->deltaPos += deltaPos;
|
||||
this->deltaAxis += deltaAxis;
|
||||
this->isDisturbed = this->isForwarded = true;
|
||||
}
|
||||
|
||||
inline bool CustomBodyState::IsSpatiallyAltered() const
|
||||
{
|
||||
return this->isSpatiallyAltered;
|
||||
|
@ -296,6 +317,11 @@ namespace Oyster { namespace Physics
|
|||
{
|
||||
return this->isDisturbed;
|
||||
}
|
||||
|
||||
inline bool CustomBodyState::IsForwarded() const
|
||||
{
|
||||
return this->isForwarded;
|
||||
}
|
||||
}
|
||||
} }
|
||||
|
||||
|
|
|
@ -66,6 +66,8 @@ namespace Oyster { namespace Physics
|
|||
const ::Oyster::Math::Float4 & GetAngularMomentum() const;
|
||||
const ::Oyster::Math::Float4 & GetLinearImpulse() const;
|
||||
const ::Oyster::Math::Float4 & GetAngularImpulse() const;
|
||||
const ::Oyster::Math::Float4 & GetForward_DeltaPos() const;
|
||||
const ::Oyster::Math::Float4 & GetForward_DeltaAxis() const;
|
||||
|
||||
void SetMass_KeepMomentum( ::Oyster::Math::Float m );
|
||||
void SetMass_KeepVelocity( ::Oyster::Math::Float m );
|
||||
|
@ -90,9 +92,11 @@ namespace Oyster { namespace Physics
|
|||
void ApplyLinearImpulse( const ::Oyster::Math::Float4 &j );
|
||||
void ApplyAngularImpulse( const ::Oyster::Math::Float4 &j );
|
||||
void ApplyImpulse( const ::Oyster::Math::Float4 &j, const ::Oyster::Math::Float4 &at, const ::Oyster::Math::Float4 &normal );
|
||||
void ApplyForwarding( const ::Oyster::Math::Float4 &deltaPos, const ::Oyster::Math::Float4 &deltaAxis );
|
||||
|
||||
bool IsSpatiallyAltered() const;
|
||||
bool IsDisturbed() const;
|
||||
bool IsForwarded() const;
|
||||
|
||||
private:
|
||||
::Oyster::Math::Float mass, restitutionCoeff, staticFrictionCoeff, kineticFrictionCoeff;
|
||||
|
@ -100,8 +104,9 @@ namespace Oyster { namespace Physics
|
|||
::Oyster::Math::Float4 reach, centerPos, angularAxis;
|
||||
::Oyster::Math::Float4 linearMomentum, angularMomentum;
|
||||
::Oyster::Math::Float4 linearImpulse, angularImpulse;
|
||||
::Oyster::Math::Float4 deltaPos, deltaAxis; // Forwarding data sum
|
||||
|
||||
bool isSpatiallyAltered, isDisturbed;
|
||||
bool isSpatiallyAltered, isDisturbed, isForwarded;
|
||||
};
|
||||
}
|
||||
} }
|
||||
|
|
Loading…
Reference in New Issue