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
- EventHandlerList.cs
- _HelperAsyncResults.cs
- SspiHelper.cs
- CorrelationKeyCalculator.cs
- TextTrailingWordEllipsis.cs
- SqlTrackingService.cs
- TableRowCollection.cs
- CompositeControl.cs
- InputElement.cs
- OracleConnectionString.cs
- InstalledFontCollection.cs
- PropertyGeneratedEventArgs.cs
- CaseCqlBlock.cs
- Aggregates.cs
- Environment.cs
- TdsParserStateObject.cs
- InternalControlCollection.cs
- SchemaSetCompiler.cs
- WebPartTransformer.cs
- TrustLevel.cs
- Binding.cs
- TableItemProviderWrapper.cs
- TextMetrics.cs
- DocumentViewerAutomationPeer.cs
- ServiceProviders.cs
- RegexCapture.cs
- ErrorStyle.cs
- AppDomainManager.cs
- DataGridViewAutoSizeModeEventArgs.cs
- Lazy.cs
- HeaderCollection.cs
- XmlHierarchicalEnumerable.cs
- UrlMappingsSection.cs
- XmlDataImplementation.cs
- KeyTimeConverter.cs
- EditingCoordinator.cs
- UniqueEventHelper.cs
- _IPv4Address.cs
- Logging.cs
- Panel.cs
- ConstraintManager.cs
- XmlElementAttribute.cs
- PropVariant.cs
- LOSFormatter.cs
- SerialErrors.cs
- MediaSystem.cs
- CodeTypeDelegate.cs
- TCEAdapterGenerator.cs
- ServiceProviders.cs
- JavaScriptString.cs
- PhysicalAddress.cs
- WorkflowMessageEventArgs.cs
- EnglishPluralizationService.cs
- Crc32.cs
- ManipulationStartedEventArgs.cs
- SafeLibraryHandle.cs
- QualificationDataItem.cs
- OdbcException.cs
- GridViewDeletedEventArgs.cs
- DifferencingCollection.cs
- BooleanToVisibilityConverter.cs
- CoTaskMemSafeHandle.cs
- TreeNodeEventArgs.cs
- PersianCalendar.cs
- UpDownBase.cs
- CodeTypeParameter.cs
- unsafenativemethodsother.cs
- SafeCryptHandles.cs
- ErrorProvider.cs
- RichListBox.cs
- VScrollBar.cs
- XmlEnumAttribute.cs
- Hex.cs
- PeerResolver.cs
- OrderedDictionaryStateHelper.cs
- DataAdapter.cs
- CDSCollectionETWBCLProvider.cs
- MD5.cs
- BindingListCollectionView.cs
- TemplateNameScope.cs
- JsonReaderWriterFactory.cs
- HandlerBase.cs
- RequestQueryProcessor.cs
- Geometry3D.cs
- Item.cs
- DecoderReplacementFallback.cs
- _DigestClient.cs
- OpCodes.cs
- IdentityHolder.cs
- GeneralTransform2DTo3D.cs
- TaiwanLunisolarCalendar.cs
- CellTreeNodeVisitors.cs
- DateRangeEvent.cs
- XPathScanner.cs
- ipaddressinformationcollection.cs
- METAHEADER.cs
- Tracking.cs
- HtmlButton.cs
- XmlSerializerImportOptions.cs
- ToolStripSystemRenderer.cs