当前位置: 首页>>代码示例>>C++>>正文


C++ MatrixTransform::GetTransform方法代码示例

本文整理汇总了C++中MatrixTransform::GetTransform方法的典型用法代码示例。如果您正苦于以下问题:C++ MatrixTransform::GetTransform方法的具体用法?C++ MatrixTransform::GetTransform怎么用?C++ MatrixTransform::GetTransform使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在MatrixTransform的用法示例。


在下文中一共展示了MatrixTransform::GetTransform方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: ApplyMatrixTransform

void CollisionVisitor::ApplyMatrixTransform(MatrixTransform &m)
{
	matrix4x4f matrix = matrix4x4f::Identity();
	if (!m_matrixStack.empty()) matrix = m_matrixStack.back();

	m_matrixStack.push_back(matrix * m.GetTransform());
	m.Traverse(*this);
	m_matrixStack.pop_back();
}
开发者ID:HeadHunterEG,项目名称:pioneer,代码行数:9,代码来源:CollisionVisitor.cpp

示例2: shieldFinder

Shields::Shields(SceneGraph::Model *model)
	: m_enabled(false)
{
	assert(s_initialised);

	using SceneGraph::Node;
	using SceneGraph::MatrixTransform;
	using SceneGraph::StaticGeometry;
	using SceneGraph::CollisionGeometry;

	//This will find all matrix transforms meant for shields.
	SceneGraph::FindNodeVisitor shieldFinder(SceneGraph::FindNodeVisitor::MATCH_NAME_ENDSWITH, s_matrixTransformName);
	model->GetRoot()->Accept(shieldFinder);
	const std::vector<Node*> &results = shieldFinder.GetResults();

	//Store pointer to the shields for later.
	for (unsigned int i=0; i < results.size(); i++) {
		MatrixTransform *mt = dynamic_cast<MatrixTransform*>(results.at(i));
		assert(mt);


		for(Uint32 iChild=0 ; iChild<mt->GetNumChildren() ; ++iChild) {
			Node* node = mt->GetChildAt(iChild);
			if (node)
			{
				RefCountedPtr<StaticGeometry> sg(dynamic_cast<StaticGeometry*>(node));
				assert(sg.Valid());
				sg->SetNodeMask(SceneGraph::NODE_TRANSPARENT);

				Graphics::RenderStateDesc rsd;
				rsd.blendMode = Graphics::BLEND_ALPHA;
				rsd.depthWrite = false;
				sg->SetRenderState(sg->GetRenderer()->CreateRenderState(rsd));

				// set the material
				for (Uint32 iMesh = 0; iMesh < sg->GetNumMeshes(); ++iMesh) {
					StaticGeometry::Mesh &rMesh = sg->GetMeshAt(iMesh);
					rMesh.material = GetGlobalShieldMaterial();
				}

				m_shields.push_back(Shield(Color3ub(255), mt->GetTransform(), sg.Get()));
			}
		}
	}
}
开发者ID:lwho,项目名称:pioneer,代码行数:45,代码来源:Shields.cpp

示例3: ApplyMatrixTransform

	void ApplyMatrixTransform(MatrixTransform &node) {
		const matrix4x4f &m = node.GetTransform();
		for (int i = 0; i < 16; i++)
			wr->Float(m[i]);
	}
开发者ID:zugz,项目名称:pioneer,代码行数:5,代码来源:Model.cpp


注:本文中的MatrixTransform::GetTransform方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。