bool ModelEntity::setOrthographicCameraCascadedShadowMap(const string& lightName, const CameraSP& camera, const OrthographicCameraCascadedShadowMap2DSP& orthographicCameraCascadedShadowMap2D, int32_t section) const
{
	Quaternion baseRotation(-90.0f, Vector3(1.0f, 0.0f, 0.0f));

	baseRotation *= Quaternion(90.0f, Vector3(0.0f, 1.0f, 0.0f));

	auto walker = allLights.begin();

	InstanceNodeSP instanceNode;

	while (walker != allLights.end())
	{
		instanceNode = *walker;

		if (instanceNode->getNode()->getName().compare(lightName) == 0)
		{
			orthographicCameraCascadedShadowMap2D->getOrthographicCamera(section)->adjustToFrustum(camera->getViewFrustum(), section, instanceNode->getPosition(), instanceNode->getRotation() * baseRotation);

			ProgramManagerProxy::setCameraByType(GeneralEntity::currentProgramType, orthographicCameraCascadedShadowMap2D->getOrthographicCamera(section), Point4(), Quaternion(), false);

			return true;
		}

		walker++;
	}

	return false;
}