viewer.clock.onTick.addEventListener(function(clock) {
var camera = viewer.camera;
var tempP = temp_entity.position.getValueInReferenceFrame(clock.currentTime, Cesium.ReferenceFrame.FIXED);
var tempMatrix3 = new Cesium.Matrix3.fromQuaternion(temp_entity.orientation.getValue(clock.currentTime));
var testDirection = new Cesium.Cartesian3(1.0 , 0.0, 0.0);
var upDirection = new Cesium.Cartesian3(0.0 , 0.0, 1);
Cesium.Matrix3.multiplyByVector(tempMatrix3, testDirection, testDirection);
Cesium.Matrix3.multiplyByVector(tempMatrix3, upDirection, upDirection);
var modelMatrix = Cesium.Matrix4.fromRotationTranslation(tempMatrix3,tempP);;
getModelMatrix(temp_entity, viewer.clock.currentTime, scratch);
console.log("------------------------start");
console.log(model.modelMatrix);
console.log(scratch);
console.log(model.modelMatrix.equals(scratch)); //is true
console.log("------------------------end");
//way 1
camera.lookAtTransform(model.modelMatrix, new Cesium.Cartesian3(-10, 0, 2));
//way 2
camera.position = tempP.clone();
camera.direction = testDirection.clone();
camera.up = upDirection.clone();
});