Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Media3D / ProjectionCamera.cs / 1 / ProjectionCamera.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // //--------------------------------------------------------------------------- using System; namespace System.Windows.Media.Media3D { ////// The ProjectionCamera is an abstract base class from cameras /// constructed from well-understand parameers such as Position, /// LookAtPoint, and Up. /// public abstract partial class ProjectionCamera : Camera { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- ////// Prevent 3rd parties from extending this abstract base class. /// internal ProjectionCamera() { } //------------------------------------------------------ // // Public Methods // //----------------------------------------------------- //------------------------------------------------------ // // Public Properties // //------------------------------------------------------ //----------------------------------------------------- // // Public Events // //------------------------------------------------------ //----------------------------------------------------- // // Internal Methods // //----------------------------------------------------- #region Internal Methods internal override Matrix3D GetViewMatrix() { Point3D position = Position; Vector3D lookDirection = LookDirection; Vector3D upDirection = UpDirection; return CreateViewMatrix(Transform, ref position, ref lookDirection, ref upDirection); } // Transfrom that moves the world to a camera coordinate system // where the camera is at the origin looking down the negative z // axis and y is up. // // NOTE: We consider camera.Transform to be part of the view matrix. // internal static Matrix3D CreateViewMatrix(Transform3D transform, ref Point3D position, ref Vector3D lookDirection, ref Vector3D upDirection) { Vector3D zaxis = -lookDirection; zaxis.Normalize(); Vector3D xaxis = Vector3D.CrossProduct(upDirection, zaxis); xaxis.Normalize(); Vector3D yaxis = Vector3D.CrossProduct(zaxis, xaxis); Vector3D positionVec = (Vector3D) position; double cx = -Vector3D.DotProduct(xaxis, positionVec); double cy = -Vector3D.DotProduct(yaxis, positionVec); double cz = -Vector3D.DotProduct(zaxis, positionVec); Matrix3D viewMatrix = new Matrix3D( xaxis.X, yaxis.X, zaxis.X, 0, xaxis.Y, yaxis.Y, zaxis.Y, 0, xaxis.Z, yaxis.Z, zaxis.Z, 0, cx, cy, cz, 1); PrependInverseTransform(transform, ref viewMatrix); return viewMatrix; } #endregion Internal Methods //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RuleElement.cs
- BulletChrome.cs
- SchemaNames.cs
- WindowsIdentity.cs
- SchemaImporterExtension.cs
- DataGridViewElement.cs
- IndexedGlyphRun.cs
- DeflateStream.cs
- Label.cs
- DataView.cs
- CloseSequence.cs
- ColorConvertedBitmap.cs
- WebPartHeaderCloseVerb.cs
- RegexGroupCollection.cs
- DocumentPageTextView.cs
- OrderedDictionary.cs
- RangeEnumerable.cs
- RecipientInfo.cs
- KeyValuePair.cs
- QilNode.cs
- RenderingBiasValidation.cs
- CacheForPrimitiveTypes.cs
- UntrustedRecipientException.cs
- EntityDataSource.cs
- sqlinternaltransaction.cs
- AssociationTypeEmitter.cs
- DesignerDataTable.cs
- DetailsViewPageEventArgs.cs
- LayoutTable.cs
- Compiler.cs
- ScrollData.cs
- MissingMethodException.cs
- FilterQuery.cs
- IHttpResponseInternal.cs
- Size.cs
- MessagePropertyDescription.cs
- PrePostDescendentsWalker.cs
- TraceContext.cs
- AppSettingsExpressionBuilder.cs
- ButtonStandardAdapter.cs
- ListViewGroup.cs
- ApplicationProxyInternal.cs
- RolePrincipal.cs
- DictionaryGlobals.cs
- HttpValueCollection.cs
- RegexBoyerMoore.cs
- SuppressMergeCheckAttribute.cs
- Utilities.cs
- RelationshipWrapper.cs
- ToolZone.cs
- DataGridItemCollection.cs
- RectangleGeometry.cs
- MethodBuilder.cs
- Baml2006ReaderSettings.cs
- DetailsViewModeEventArgs.cs
- DataMemberAttribute.cs
- PersonalizationStateInfo.cs
- InputScopeManager.cs
- WebBrowserUriTypeConverter.cs
- WebPartDisplayModeEventArgs.cs
- ThreadAbortException.cs
- CriticalExceptions.cs
- LayoutEvent.cs
- SynchronizationHandlesCodeDomSerializer.cs
- _ProxyChain.cs
- SendMailErrorEventArgs.cs
- ObjectDataSource.cs
- ImpersonateTokenRef.cs
- DbConnectionPoolIdentity.cs
- Crc32.cs
- LogAppendAsyncResult.cs
- VerbConverter.cs
- WebPartDescriptionCollection.cs
- ProtocolViolationException.cs
- ConfigXmlElement.cs
- DataControlLinkButton.cs
- DesignerActionPanel.cs
- Html32TextWriter.cs
- MenuItemBinding.cs
- ControlEvent.cs
- CodeVariableReferenceExpression.cs
- lengthconverter.cs
- WindowPattern.cs
- TextServicesManager.cs
- AccessDataSource.cs
- CompilerCollection.cs
- DoubleLink.cs
- DesignerActionVerbItem.cs
- XmlDocumentType.cs
- _ConnectStream.cs
- SafeSecurityHelper.cs
- GiveFeedbackEventArgs.cs
- CacheDependency.cs
- ProcessRequestArgs.cs
- XmlValidatingReader.cs
- RegexMatchCollection.cs
- Condition.cs
- ProfileSettingsCollection.cs
- ForeignConstraint.cs
- ForEach.cs