/// <summary> /// Performs a deep copy of this <see cref="IGraphicsState"/>. /// </summary> /// <returns> /// It returns the equivalent of this <see cref="IGraphicsState"/>, but all objects referenced /// are not referred by both instances. /// </returns> public override IGraphicsState Copy() { TransformState copiedState = (TransformState)base.Copy(); if (_LocalProjection != null) { copiedState._LocalProjection = (ProjectionMatrix)_LocalProjection.Clone(); } copiedState._LocalModel = new ModelMatrix(_LocalModel); return(copiedState); }
/// <summary> /// Performs a deep copy of this <see cref="IGraphicsState"/>. /// </summary> /// <returns> /// It returns the equivalent of this <see cref="IGraphicsState"/>, but all objects referenced /// are not referred by both instances. /// </returns> public override IGraphicsState Push() { TransformState copiedState = (TransformState)base.Push(); if (_LocalProjection != null) { copiedState._LocalProjection = (ProjectionMatrix)_LocalProjection.Clone(); } if (_LocalModel != null) { copiedState._LocalModel = new ModelMatrix(_LocalModel); } if (_LocalModelView != null) { copiedState._LocalModelView = new ModelMatrix(_LocalModelView); } if (_LocalModelViewProjection != null) { copiedState._LocalModelViewProjection = new ModelMatrix(_LocalModelViewProjection); } return(copiedState); }