public void update (int _frameCount, float _frameRate) {
		isUpdated = false;
		gestureEvaluated = false;
		postureEvaluated = false;
		currentFrameCount = _frameCount;
		currentFrameRate = _frameRate;
		
		// Update all internal information
		updateJointPositions();
		updateJointOrientations();

		// the order is important since body planes use information of local coordinate system
		math.calculateLocalCoordSys();
		math.calculateBodyPlanes();
		if (mirrorTherapy != MIRROR_THERAPY_OFF) {
			updateMirroredJointPositions();
			updateMirroredJointOrientations();
		}
		
		// transform updated skeleton to local coordinate system
		transformToLCS();
		
		if (evaluatePostureAndGesture && posture != null && gesture != null) {
			posture.evaluate();
			postureEvaluated = true;
			gesture.evaluate(currentFrameCount);
			gestureEvaluated = true;
		}
		if (evaluateStatistics && statistics != null) {
			statistics.update(currentFrameCount,currentFrameRate);
		}
		isUpdated = true;
	}