本文整理汇总了C++中CKinematics::LL_GetBoneRoot方法的典型用法代码示例。如果您正苦于以下问题:C++ CKinematics::LL_GetBoneRoot方法的具体用法?C++ CKinematics::LL_GetBoneRoot怎么用?C++ CKinematics::LL_GetBoneRoot使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CKinematics
的用法示例。
在下文中一共展示了CKinematics::LL_GetBoneRoot方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PHSaveState
void CPhysicsShellHolder::PHSaveState(NET_Packet &P)
{
//CPhysicsShell* pPhysicsShell=PPhysicsShell();
CKinematics* K =smart_cast<CKinematics*>(Visual());
//Flags8 lflags;
//if(pPhysicsShell&&pPhysicsShell->isActive()) lflags.set(CSE_PHSkeleton::flActive,pPhysicsShell->isEnabled());
// P.w_u8 (lflags.get());
if(K)
{
P.w_u64(K->LL_GetBonesVisible());
P.w_u16(K->LL_GetBoneRoot());
}
else
{
P.w_u64(u64(-1));
P.w_u16(0);
}
/////////////////////////////
Fvector min,max;
min.set(flt_max,flt_max,flt_max);
max.set(-flt_max,-flt_max,-flt_max);
/////////////////////////////////////
u16 bones_number=PHGetSyncItemsNumber();
for(u16 i=0;i<bones_number;i++)
{
SPHNetState state;
PHGetSyncItem(i)->get_State(state);
Fvector& p=state.position;
if(p.x<min.x)min.x=p.x;
if(p.y<min.y)min.y=p.y;
if(p.z<min.z)min.z=p.z;
if(p.x>max.x)max.x=p.x;
if(p.y>max.y)max.y=p.y;
if(p.z>max.z)max.z=p.z;
}
min.sub(2.f*EPS_L);
max.add(2.f*EPS_L);
VERIFY(!min.similar(max));
P.w_vec3(min);
P.w_vec3(max);
P.w_u16(bones_number);
for(u16 i=0;i<bones_number;i++)
{
SPHNetState state;
PHGetSyncItem(i)->get_State(state);
state.net_Save(P,min,max);
}
}