CustomBodyState::ApplyForwarding(..) added
This commit is contained in:
parent
9aa584acc7
commit
c4bbc09a97
|
@ -41,7 +41,8 @@ namespace Oyster { namespace Physics
|
||||||
this->linearMomentum = linearMomentum;
|
this->linearMomentum = linearMomentum;
|
||||||
this->angularMomentum = angularMomentum;
|
this->angularMomentum = angularMomentum;
|
||||||
this->linearImpulse = this->angularImpulse = ::Oyster::Math::Float4::null;
|
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 )
|
inline CustomBodyState & CustomBodyState::operator = ( const CustomBodyState &state )
|
||||||
|
@ -58,8 +59,11 @@ namespace Oyster { namespace Physics
|
||||||
this->angularMomentum = state.angularMomentum;
|
this->angularMomentum = state.angularMomentum;
|
||||||
this->linearImpulse = state.linearImpulse;
|
this->linearImpulse = state.linearImpulse;
|
||||||
this->angularImpulse = state.angularImpulse;
|
this->angularImpulse = state.angularImpulse;
|
||||||
|
this->deltaPos = state.deltaPos;
|
||||||
|
this->deltaAxis = state.deltaAxis;
|
||||||
this->isSpatiallyAltered = state.isSpatiallyAltered;
|
this->isSpatiallyAltered = state.isSpatiallyAltered;
|
||||||
this->isDisturbed = state.isDisturbed;
|
this->isDisturbed = state.isDisturbed;
|
||||||
|
this->isForwarded = state.isForwarded;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,6 +153,16 @@ namespace Oyster { namespace Physics
|
||||||
return this->angularImpulse;
|
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 )
|
inline void CustomBodyState::SetMass_KeepMomentum( ::Oyster::Math::Float m )
|
||||||
{
|
{
|
||||||
this->mass = m;
|
this->mass = m;
|
||||||
|
@ -287,6 +301,13 @@ namespace Oyster { namespace Physics
|
||||||
this->isDisturbed = true;
|
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
|
inline bool CustomBodyState::IsSpatiallyAltered() const
|
||||||
{
|
{
|
||||||
return this->isSpatiallyAltered;
|
return this->isSpatiallyAltered;
|
||||||
|
@ -296,6 +317,11 @@ namespace Oyster { namespace Physics
|
||||||
{
|
{
|
||||||
return this->isDisturbed;
|
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 & GetAngularMomentum() const;
|
||||||
const ::Oyster::Math::Float4 & GetLinearImpulse() const;
|
const ::Oyster::Math::Float4 & GetLinearImpulse() const;
|
||||||
const ::Oyster::Math::Float4 & GetAngularImpulse() 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_KeepMomentum( ::Oyster::Math::Float m );
|
||||||
void SetMass_KeepVelocity( ::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 ApplyLinearImpulse( const ::Oyster::Math::Float4 &j );
|
||||||
void ApplyAngularImpulse( 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 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 IsSpatiallyAltered() const;
|
||||||
bool IsDisturbed() const;
|
bool IsDisturbed() const;
|
||||||
|
bool IsForwarded() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
::Oyster::Math::Float mass, restitutionCoeff, staticFrictionCoeff, kineticFrictionCoeff;
|
::Oyster::Math::Float mass, restitutionCoeff, staticFrictionCoeff, kineticFrictionCoeff;
|
||||||
|
@ -100,8 +104,9 @@ namespace Oyster { namespace Physics
|
||||||
::Oyster::Math::Float4 reach, centerPos, angularAxis;
|
::Oyster::Math::Float4 reach, centerPos, angularAxis;
|
||||||
::Oyster::Math::Float4 linearMomentum, angularMomentum;
|
::Oyster::Math::Float4 linearMomentum, angularMomentum;
|
||||||
::Oyster::Math::Float4 linearImpulse, angularImpulse;
|
::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