void RenderablePlaneProjection::setTarget(std::string body) {

	if (body == "")
		return;

	std::vector<SceneGraphNode*> nodes = OsEng.renderEngine().scene()->allSceneGraphNodes();
	Renderable* possibleTarget;
	bool hasBody, found = false;
	std::string targetBody;

	for (auto node : nodes)
	{
		possibleTarget = node->renderable();
		if (possibleTarget != nullptr) {
			hasBody = possibleTarget->hasBody();
			if (hasBody && possibleTarget->getBody(targetBody) && (targetBody == body)) {
				_target.node = node->name(); // get name from propertyOwner
				found = true;
				break;
			}
		}
	}
	if (found) {
		_target.body = body;
		_target.frame = openspace::SpiceManager::ref().frameFromBody(body);
	}
}
std::string RenderablePlaneProjection::findClosestTarget(double currentTime) {

	std::vector<std::string> targets;

	std::vector<SceneGraphNode*> nodes = OsEng.renderEngine().scene()->allSceneGraphNodes();
	Renderable* possibleTarget;
	std::string targetBody;
	bool hasBody, found = false;

	PowerScaledScalar min = PowerScaledScalar::CreatePSS(REALLY_FAR);
	PowerScaledScalar distance = PowerScaledScalar::CreatePSS(0.0);

	std::string closestTarget = "";

	double lt;
    glm::dvec3 p =
    SpiceManager::ref().targetPosition(_spacecraft, "SSB", GalacticFrame, {}, currentTime, lt);
    psc spacecraftPos = PowerScaledCoordinate::CreatePowerScaledCoordinate(p.x, p.y, p.z);


	for (auto node : nodes)
	{
		possibleTarget = node->renderable();
		if (possibleTarget != nullptr) {
			hasBody = possibleTarget->hasBody();
			if (hasBody && possibleTarget->getBody(targetBody)) {
                found = SpiceManager::ref().isTargetInFieldOfView(targetBody, _spacecraft, _instrument, SpiceManager::FieldOfViewMethod::Ellipsoid, {}, currentTime);
				if (found){
					targets.push_back(node->name()); // get name from propertyOwner
					distance = (node->worldPosition() - spacecraftPos).length();
					if (distance < min)
						closestTarget = targetBody;
				}
			}
		}
	}

	return closestTarget;
}