Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media3D / ProjectionCamera.cs / 1305600 / 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
- ScriptManagerProxy.cs
- EarlyBoundInfo.cs
- HttpContext.cs
- KeyboardNavigation.cs
- LocalClientSecuritySettingsElement.cs
- ArrayList.cs
- Int64AnimationBase.cs
- Parameter.cs
- CorrelationService.cs
- ISCIIEncoding.cs
- ChangeTracker.cs
- EventLogPermissionEntryCollection.cs
- NumberFunctions.cs
- ApplicationProxyInternal.cs
- TabPage.cs
- MouseBinding.cs
- NameValuePermission.cs
- DependencyStoreSurrogate.cs
- EnumValAlphaComparer.cs
- DiagnosticEventProvider.cs
- LongValidator.cs
- DecimalConstantAttribute.cs
- ToolStripDropTargetManager.cs
- UpDownEvent.cs
- LexicalChunk.cs
- SourceElementsCollection.cs
- UnsafeNativeMethods.cs
- MailAddressCollection.cs
- TableHeaderCell.cs
- HttpListenerRequest.cs
- UrlAuthorizationModule.cs
- XmlDataSourceNodeDescriptor.cs
- oledbconnectionstring.cs
- ConsoleEntryPoint.cs
- HostAdapter.cs
- AutomationPattern.cs
- PropertyDescriptor.cs
- HtmlImage.cs
- ExtensionMethods.cs
- XamlReaderHelper.cs
- HttpResponseHeader.cs
- MissingManifestResourceException.cs
- EncryptedKey.cs
- EllipseGeometry.cs
- SecurityTokenTypes.cs
- ScopeElement.cs
- ServiceModelPerformanceCounters.cs
- HttpCacheParams.cs
- DesignerRegion.cs
- OleDbCommandBuilder.cs
- BufferBuilder.cs
- DataGridViewCellEventArgs.cs
- Enum.cs
- DateTimePicker.cs
- MouseButton.cs
- SubclassTypeValidator.cs
- SyndicationDeserializer.cs
- UnsafeNativeMethods.cs
- HtmlDocument.cs
- WebConfigurationHost.cs
- _NtlmClient.cs
- AddInProcess.cs
- WindowsStartMenu.cs
- DataTableReader.cs
- ControlDesignerState.cs
- RootNamespaceAttribute.cs
- dataSvcMapFileLoader.cs
- TypeDefinition.cs
- PropertySegmentSerializer.cs
- HttpHandlersSection.cs
- DataObject.cs
- OdbcParameterCollection.cs
- ObjectSet.cs
- BrowserTree.cs
- Logging.cs
- StorageInfo.cs
- ArrayWithOffset.cs
- ParserOptions.cs
- ItemDragEvent.cs
- XsdDateTime.cs
- RangeValuePattern.cs
- DockPatternIdentifiers.cs
- GeneralTransformCollection.cs
- SiteMapNodeItem.cs
- DesignerAdapterAttribute.cs
- RequestCacheValidator.cs
- ImageConverter.cs
- XmlWellformedWriter.cs
- DomainConstraint.cs
- _TLSstream.cs
- ManipulationDevice.cs
- Blend.cs
- DefaultObjectMappingItemCollection.cs
- DataGridViewButtonColumn.cs
- SizeFConverter.cs
- Track.cs
- FixedFindEngine.cs
- FormsAuthenticationConfiguration.cs
- ContextProperty.cs
- DoubleCollectionValueSerializer.cs