Ejemplo n.º 1
0
	//---------------------------------------------------------------------
	void SceneResource::processSceneNodeContent(const Util::XmlNode * snNode, SceneNodePtr & sceneNode, bool isChild) const
	{
		WHISPERWIND_ASSERT(snNode);

		/// node property
		{
			Util::String posStr(mXmlReader->getAttribute(snNode, "position"));
			XMVECTOR posVec = Util::StringToVector(posStr, 3);

			Util::String orientStr(mXmlReader->getAttribute(snNode, "orientation"));
			XMVECTOR orientVec = Util::StringToVector(orientStr, 4);

			if (!isChild)
			{
				sceneNode->setPosition(posVec);
				sceneNode->setOrientation(orientVec);
			}
			else
			{
				sceneNode->setRelativePosition(posVec);
				sceneNode->setRelativeOrientation(orientVec);
			}
		}

		const Util::XmlNode * snChildNode = mXmlReader->getFirstNode(snNode, "child_node");
		while (snChildNode)
		{
			processChildSceneNode(snChildNode, sceneNode);

			snChildNode = mXmlReader->getNextSiblingNode(snChildNode);
		}

		const Util::XmlNode * soNode = mXmlReader->getFirstNode(snNode, "object");
		while (soNode)
		{
			processSceneObject(soNode, sceneNode);

			soNode = mXmlReader->getNextSiblingNode(soNode);
		}

		const Util::XmlNode * lightNode = mXmlReader->getFirstNode(snNode, "light");
		while (lightNode)
		{
			processLight(lightNode, sceneNode);

			lightNode = mXmlReader->getNextSiblingNode(lightNode);
		}

		const Util::XmlNode * trackNode = mXmlReader->getFirstNode(snNode, "node_track");
		while (trackNode)
		{
			processNodeTrack(trackNode, sceneNode);

			trackNode = mXmlReader->getNextSiblingNode(trackNode);
		}
	}
Ejemplo n.º 2
0
	//---------------------------------------------------------------------
	void SceneResource::processCamera(const Util::XmlNode * cameraNode) const
	{
		CameraPtr camera;

		/// params
		{
			Util::String nearClipStr(mXmlReader->getAttribute(cameraNode, "near_clip"));
			Util::real nearClip = boost::lexical_cast<Util::real>(nearClipStr);

			Util::String farClipStr(mXmlReader->getAttribute(cameraNode, "far_clip"));
			Util::real farClip = boost::lexical_cast<Util::real>(farClipStr);

			Util::String viewportRectStr(mXmlReader->getAttribute(cameraNode, "viewport_rect"));
			XMVECTOR viewportRect = Util::StringToVector(viewportRectStr, 4);

			camera = boost::make_shared<Camera>(nearClip, farClip, 
				Util::UintPair(XMVectorGetIntX(viewportRect), XMVectorGetIntY(viewportRect)),
				Util::UintPair(XMVectorGetIntZ(viewportRect), XMVectorGetIntW(viewportRect)));

			IF_NULL_EXCEPTION(camera, "Camera creat failed!");
		}

		/// postion
		{
			Util::String posStr(mXmlReader->getAttribute(cameraNode, "position"));
			camera->setPosition(Util::StringToVector(posStr, 3));
		}

		/// lookat
		{
			Util::String str(mXmlReader->getAttribute(cameraNode, "lookat"));
			camera->lookAt(Util::StringToVector(str, 3));
		}
		
		/// movespeed
		{
			Util::String str(mXmlReader->getAttribute(cameraNode, "move_speed"));
			camera->setMoveSpeed(boost::lexical_cast<Util::real>(str));
		}

		EngineManager::getSingleton().setCamera(camera);
	}
Ejemplo n.º 3
0
void MessageChar(char character, int pos)
{
    std::string posStr(std::to_string(pos));
    std::string chrStr(std::to_string(character));
    MessageBox(NULL, chrStr.c_str(), posStr.c_str(), MB_OK);
}