本文整理汇总了C++中Transform::GetLocalPosition方法的典型用法代码示例。如果您正苦于以下问题:C++ Transform::GetLocalPosition方法的具体用法?C++ Transform::GetLocalPosition怎么用?C++ Transform::GetLocalPosition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Transform
的用法示例。
在下文中一共展示了Transform::GetLocalPosition方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FillGrid
void Grid::FillGrid(std::vector<PhysicsObject>& objects)
{
// Clear the grid
for (uint i = 0; i < numCellsX; ++i)
{
for (uint j = 0; j < numCellsZ; ++j)
{
grid[i][j].Clear();
}
}
// Fill the grid
uint n = objects.size();
for (uint i = 0; i < n; ++i)
{
Transform* t = objects[i].collider->GetGameObject()->GetTransform();
Vector3 pos = t->GetLocalPosition();
int x = (int)(pos.x * inverseCellWidth) + 2;
int z = (int)(pos.z * -inverseCellWidth) + 2;
if (x > numCellsX - 1) x = numCellsX - 1;
if (x < 0) x = 0;
if (z > numCellsZ - 1) z = numCellsZ - 1;
if (z < 0) z = 0;
grid[x][z].Add(&objects[i]);
}
}
示例2: SetParent
void GameObject::SetParent(GameObject *newParent, bool keepWorldTransform)
{
if (keepWorldTransform)
Debug_Log("Set parent of " << this << " to " << newParent);
if (m_parent != newParent)
{
if (m_parent)
{
m_parent->m_children.Remove(this);
}
if (keepWorldTransform)
{
// TODO: Not working yet (sometimes scaling breaks)
Matrix4 oldParentToWorld;
parent->transform->GetLocalToWorldMatrix(&oldParentToWorld);
//Debug_Log("LOCAL TO WORLD: " << Transform::FromTransformMatrix(oldParentToWorld));
Matrix4 worldToNewParent;
if (newParent)
{
newParent->transform->GetLocalToWorldMatrix(&worldToNewParent);
worldToNewParent = worldToNewParent.Inversed();
//Debug_Log("WORLD TO NEW PARENT: " << Transform::FromTransformMatrix(worldToNewParent));
}
Matrix4 keepWorldTransformMatrix =
worldToNewParent * oldParentToWorld * transform->GetLocalToParentMatrix();
//Debug_Log("LOCALTOPARENT: " <<
// Quaternion::EulerAngles(
// Transform::GetRotationFromMatrix4(transform->GetLocalToParentMatrix())));
//Debug_Log("KEEPWORLDMATRIX: " << Transform::FromTransformMatrix(keepWorldTransformMatrix));
Transform t = Transform::FromTransformMatrix(keepWorldTransformMatrix);
transform->SetLocalPosition(t.GetLocalPosition());
transform->SetLocalRotation(t.GetLocalRotation());
transform->SetLocalScale (t.GetLocalScale());
}
m_parent = newParent;
if (m_parent)
{
m_parent->m_children.PushBack(this);
}
}
}