if (parent != null) { worldScale.set(parent.getWorldScale()).multLocal(localScale); parent.getWorldRotation().mult(localRotation, worldRotation); worldTranslation = parent.getWorldRotation().mult(localTranslation, worldTranslation).multLocal(parent.getWorldScale()) .addLocal(parent.getWorldTranslation()); } else { worldScale = localScale; worldRotation = localRotation; worldTranslation = localTranslation; } }
updateWorldVectors(); }
	protected void updateWorldData(float time) {		//update spatial state via controllers		Object controller;		for (int i = 0, gSize = geometricalControllers.size(); i < gSize; i++) {			if ((controller = geometricalControllers.get(i)) != null) {				((Controller) controller).update(time);			}		}		if (parent != null) {			worldScale.set(parent.getWorldScale()).multLocal(localScale);			parent.getWorldRotation().mult(localRotation, worldRotation);			worldTranslation = parent.getWorldRotation().mult(localTranslation,					worldTranslation).multLocal(parent.getWorldScale())					.addLocal(parent.getWorldTranslation());		} else {			worldScale = localScale;			worldRotation = localRotation;			worldTranslation = localTranslation;		}	}