void RigidBodyReaderWriter::loadBodyPropertiesOn(RigidBody *rigidBody, const std::shared_ptr<XmlChunk> &physicsChunk, const XmlParser &xmlParser) const
	{
		std::shared_ptr<XmlChunk> massChunk = xmlParser.getUniqueChunk(true, MASS_TAG, XmlAttribute(), physicsChunk);
		float bodyMass = massChunk->getFloatValue();
		rigidBody->setMass(bodyMass);

		std::shared_ptr<XmlChunk> restitutionChunk = xmlParser.getUniqueChunk(true, RESTITUTION_TAG, XmlAttribute(), physicsChunk);
		rigidBody->setRestitution(restitutionChunk->getFloatValue());

		std::shared_ptr<XmlChunk> frictionChunk = xmlParser.getUniqueChunk(true, FRICTION_TAG, XmlAttribute(), physicsChunk);
		rigidBody->setFriction(frictionChunk->getFloatValue());

		std::shared_ptr<XmlChunk> rollingFrictionChunk = xmlParser.getUniqueChunk(true, ROLLING_FRICTION_TAG, XmlAttribute(), physicsChunk);
		rigidBody->setRollingFriction(rollingFrictionChunk->getFloatValue());

		std::shared_ptr<XmlChunk> linearDampingChunk = xmlParser.getUniqueChunk(true, LINEAR_DAMPING_TAG, XmlAttribute(), physicsChunk);
		std::shared_ptr<XmlChunk> angularDampingChunk = xmlParser.getUniqueChunk(true, ANGULAR_DAMPING_TAG, XmlAttribute(), physicsChunk);
		rigidBody->setDamping(linearDampingChunk->getFloatValue(), angularDampingChunk->getFloatValue());

		std::shared_ptr<XmlChunk> linearFactorChunk = xmlParser.getUniqueChunk(true, LINEAR_FACTOR_TAG, XmlAttribute(), physicsChunk);
		rigidBody->setLinearFactor(linearFactorChunk->getVector3Value());

		std::shared_ptr<XmlChunk> angularFactorChunk = xmlParser.getUniqueChunk(true, ANGULAR_FACTOR_TAG, XmlAttribute(), physicsChunk);
		rigidBody->setAngularFactor(angularFactorChunk->getVector3Value());
	}
Exemplo n.º 2
0
	void Map::loadSceneAIFrom(const std::shared_ptr<XmlChunk> &chunk, const XmlParser &xmlParser)
	{
		std::shared_ptr<XmlChunk> aiElementsListChunk = xmlParser.getUniqueChunk(true, AI_ELEMENTS_TAG, XmlAttribute(), chunk);

		auto *sceneAI = new SceneAI();
		sceneAI->loadFrom(aiElementsListChunk, xmlParser);

		setSceneAI(sceneAI);
	}
Exemplo n.º 3
0
	void Map::loadSceneLightsFrom(const std::shared_ptr<XmlChunk> &chunk, const XmlParser &xmlParser)
	{
		std::shared_ptr<XmlChunk> lightsListChunk = xmlParser.getUniqueChunk(true, LIGHTS_TAG, XmlAttribute(), chunk);
		std::vector<std::shared_ptr<XmlChunk>> lightsChunk = xmlParser.getChunks(LIGHT_TAG, XmlAttribute(), lightsListChunk);

		for (const auto &lightChunk : lightsChunk)
		{
			auto *sceneLight = new SceneLight();
			sceneLight->loadFrom(lightChunk, xmlParser);

			addSceneLight(sceneLight);
		}
	}
Exemplo n.º 4
0
	void Map::loadSceneObjectsFrom(const std::shared_ptr<XmlChunk> &chunk, const XmlParser &xmlParser)
	{
		std::shared_ptr<XmlChunk> objectsListChunk = xmlParser.getUniqueChunk(true, OBJECTS_TAG, XmlAttribute(), chunk);
		std::vector<std::shared_ptr<XmlChunk>> objectsChunk = xmlParser.getChunks(OBJECT_TAG, XmlAttribute(), objectsListChunk);

		for (const auto &objectChunk : objectsChunk)
		{
			auto *sceneObject = new SceneObject();
			sceneObject->loadFrom(objectChunk, xmlParser);

			addSceneObject(sceneObject);
		}
	}
Exemplo n.º 5
0
	void Map::loadSceneSoundsFrom(const std::shared_ptr<XmlChunk> &chunk, const XmlParser &xmlParser)
	{
		std::shared_ptr<XmlChunk> soundElementsListChunk = xmlParser.getUniqueChunk(true, SOUND_ELEMENTS_TAG, XmlAttribute(), chunk);
		std::vector<std::shared_ptr<XmlChunk>> soundElementsChunk = xmlParser.getChunks(SOUND_ELEMENT_TAG, XmlAttribute(), soundElementsListChunk);

		for (const auto &soundElementChunk : soundElementsChunk)
		{
			auto *sceneSound = new SceneSound();
			sceneSound->loadFrom(soundElementChunk, xmlParser);

			addSceneSound(sceneSound);
		}
	}
Exemplo n.º 6
0
	void Map::loadSceneWaterFrom(const std::shared_ptr<XmlChunk> &chunk, const XmlParser &xmlParser)
	{
		std::shared_ptr<XmlChunk> watersListChunk = xmlParser.getUniqueChunk(true, WATERS_TAG, XmlAttribute(), chunk);
		std::vector<std::shared_ptr<XmlChunk>> watersChunk = xmlParser.getChunks(WATER_TAG, XmlAttribute(), watersListChunk);

		for (const auto &waterChunk : watersChunk)
		{
			auto *sceneWater = new SceneWater();
			sceneWater->loadFrom(waterChunk, xmlParser);

			addSceneWater(sceneWater);
		}
	}
Exemplo n.º 7
0
	void Map::loadSceneTerrainFrom(const std::shared_ptr<XmlChunk> &chunk, const XmlParser &xmlParser)
	{
		std::shared_ptr<XmlChunk> terrainsListChunk = xmlParser.getUniqueChunk(true, TERRAINS_TAG, XmlAttribute(), chunk);
		std::vector<std::shared_ptr<XmlChunk>> terrainsChunk = xmlParser.getChunks(TERRAIN_TAG, XmlAttribute(), terrainsListChunk);

		for (const auto &terrainChunk : terrainsChunk)
		{
			auto *sceneTerrain = new SceneTerrain();
			sceneTerrain->loadFrom(terrainChunk, xmlParser);

			addSceneTerrain(sceneTerrain);
		}
	}
Exemplo n.º 8
0
	void LightReaderWriter::loadFlagsOn(Light *light, std::shared_ptr<XmlChunk> lightChunk, const XmlParser &xmlParser) const
	{
		std::shared_ptr<XmlChunk> produceShadowChunk = xmlParser.getUniqueChunk(true, PRODUCE_SHADOW_TAG, XmlAttribute(), lightChunk);
		light->setProduceShadow(produceShadowChunk->getBoolValue());
	}
Exemplo n.º 9
0
	void LightReaderWriter::loadPropertiesOn(Light *light, std::shared_ptr<XmlChunk> lightChunk, const XmlParser &xmlParser) const
	{
		std::shared_ptr<XmlChunk> ambientColorChunk = xmlParser.getUniqueChunk(true, AMBIENT_COLOR_TAG, XmlAttribute(), lightChunk);
		light->setAmbientColor(ambientColorChunk->getPoint3Value());
	}
Exemplo n.º 10
0
    void SceneAI::loadFrom(const std::shared_ptr<XmlChunk> &chunk, const XmlParser &xmlParser)
    {
        std::shared_ptr<XmlChunk> navMeshConfigChunk = xmlParser.getUniqueChunk(true, NAV_MESH_CONFIG_TAG, XmlAttribute(), chunk);

        setNavMeshConfig(NavMeshConfigWriter().loadFrom(navMeshConfigChunk, xmlParser));
    }