/// <summary> /// Initializes a new instance of the <see cref="Camera{VIEW, PROJECTION}"/> class. /// </summary> /// <param name="view">The view.</param> /// <param name="projection">The projection.</param> public Camera(VIEW view, PROJECTION projection) { View = view; Projection = projection; var parent = new TransformationHierarchyNode(new Transformation(projection), null); Projection.PropertyChanged += (s, a) => parent.LocalTransformation = new Transformation(projection); node = new TransformationHierarchyNode(new Transformation(view), parent); view.PropertyChanged += (s, a) => node.LocalTransformation = new Transformation(view); }
/// <summary> /// Initializes a new instance of the <see cref="TransformationHierarchyNode"/> class. /// </summary> /// <param name="localTransformation">The node transformation.</param> /// <param name="parent">The parent transformation hierarchy node.</param> public TransformationHierarchyNode(Transformation localTransformation, TransformationHierarchyNode parent) { globalTransform = new CachedCalculatedValue <Transformation>(CalcGlobalTransformation); LocalTransformation = localTransformation; Parent = parent; }