本文整理汇总了C++中PUParticleSystem3D::getDerivedOrientation方法的典型用法代码示例。如果您正苦于以下问题:C++ PUParticleSystem3D::getDerivedOrientation方法的具体用法?C++ PUParticleSystem3D::getDerivedOrientation怎么用?C++ PUParticleSystem3D::getDerivedOrientation使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PUParticleSystem3D
的用法示例。
在下文中一共展示了PUParticleSystem3D::getDerivedOrientation方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
const Vec3& PUAffector::getDerivedPosition()
{
PUParticleSystem3D *ps = static_cast<PUParticleSystem3D *>(_particleSystem);
if (ps){
Mat4 rotMat;
Mat4::createRotation(ps->getDerivedOrientation(), &rotMat);
_derivedPosition = ps->getDerivedPosition() + rotMat * Vec3(_position.x * _affectorScale.x, _position.y * _affectorScale.y, _position.z * _affectorScale.z);
//_particleSystem->getNodeToWorldTransform().transformPoint(_position, &_derivedPosition);
}
else
_derivedPosition = _position;
return _derivedPosition;
//if (mMarkedForEmission)
//{
// // Use the affector position, because it is emitted
// // If a particle is emitted, position and derived position are the same
// _derivedPosition = position;
//}
//else
//{
// // Add the techniques' derived position
// _derivedPosition = mParentTechnique->getDerivedPosition() +
// mParentTechnique->getParentSystem()->getDerivedOrientation() * (_mAffectorScale * position);
//}
//return _derivedPosition;
}
示例2:
const Vec3& PUEmitter::getDerivedPosition()
{
if (_isMarkedForEmission){
_derivedPosition = _position;
}else {
PUParticleSystem3D *ps = static_cast<PUParticleSystem3D *>(_particleSystem);
Mat4 rotMat;
Mat4::createRotation(ps->getDerivedOrientation(), &rotMat);
_derivedPosition = ps->getDerivedPosition() + rotMat * Vec3(_position.x * _emitterScale.x, _position.y * _emitterScale.y, _position.z * _emitterScale.z);
//_particleSystem->getNodeToWorldTransform().transformPoint(_position, &_derivedPosition);
}
return _derivedPosition;
}
示例3: preUpdateAffector
void PUVortexAffector::preUpdateAffector( float deltaTime )
{
PUParticleSystem3D* sys = static_cast<PUParticleSystem3D *>(_particleSystem);
if (sys)
{
Mat4 rotMat;
Mat4::createRotation(sys->getDerivedOrientation(), &rotMat);
_rotation.set(rotMat * _rotationVector, float(calculateRotationSpeed() * deltaTime));
}
else
{
_rotation.set(_rotationVector, float(calculateRotationSpeed() * deltaTime));
}
getDerivedPosition();
}