本文整理汇总了C++中Point3F::zero方法的典型用法代码示例。如果您正苦于以下问题:C++ Point3F::zero方法的具体用法?C++ Point3F::zero怎么用?C++ Point3F::zero使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Point3F
的用法示例。
在下文中一共展示了Point3F::zero方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: processEvent
//--------------------------------------------------------------------------
void Lightning::processEvent(LightningStrikeEvent* pEvent)
{
AssertFatal(pEvent->mStart.x >= 0.0f && pEvent->mStart.x <= 1.0f, "Out of bounds coord!");
Strike* pStrike = new Strike;
Point3F strikePoint;
strikePoint.zero();
if( pEvent->mTarget )
{
Point3F objectCenter;
pEvent->mTarget->getObjBox().getCenter( &objectCenter );
objectCenter.convolve( pEvent->mTarget->getScale() );
pEvent->mTarget->getTransform().mulP( objectCenter );
strikePoint = objectCenter;
}
else
{
strikePoint.x = pEvent->mStart.x;
strikePoint.y = pEvent->mStart.y;
strikePoint *= mObjScale;
strikePoint += getPosition();
strikePoint += Point3F( -mObjScale.x * 0.5f, -mObjScale.y * 0.5f, 0.0f );
RayInfo rayInfo;
Point3F start = strikePoint;
start.z = mObjScale.z * 0.5f + getPosition().z;
strikePoint.z += -mObjScale.z * 0.5f;
bool rayHit = gClientContainer.castRay( start, strikePoint,
(STATIC_COLLISION_TYPEMASK | WaterObjectType),
&rayInfo);
if( rayHit )
{
strikePoint.z = rayInfo.point.z;
}
else
{
strikePoint.z = pStrike->bolt[0].findHeight( strikePoint, getSceneManager() );
}
}
pStrike->xVal = strikePoint.x;
pStrike->yVal = strikePoint.y;
pStrike->deathAge = 1.6f;
pStrike->currentAge = 0.0f;
pStrike->next = mStrikeListHead;
for( U32 i=0; i<3; i++ )
{
F32 randStart = boltStartRadius;
F32 height = mObjScale.z * 0.5f + getPosition().z;
pStrike->bolt[i].startPoint.set( pStrike->xVal + gRandGen.randF( -randStart, randStart ), pStrike->yVal + gRandGen.randF( -randStart, randStart ), height );
pStrike->bolt[i].endPoint = strikePoint;
pStrike->bolt[i].width = strikeWidth;
pStrike->bolt[i].numMajorNodes = 10;
pStrike->bolt[i].maxMajorAngle = 30.0f;
pStrike->bolt[i].numMinorNodes = 4;
pStrike->bolt[i].maxMinorAngle = 15.0f;
pStrike->bolt[i].generate();
pStrike->bolt[i].startSplits();
pStrike->bolt[i].lifetime = 1.0f;
pStrike->bolt[i].fadeTime = 0.2f;
pStrike->bolt[i].renderTime = gRandGen.randF(0.0f, 0.25f);
}
mStrikeListHead = pStrike;
scheduleThunder(pStrike);
MatrixF trans(true);
trans.setPosition( strikePoint );
if (mDataBlock->strikeSound)
{
SFX->playOnce(mDataBlock->strikeSound, &trans );
}
}