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
- HtmlElement.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- TargetConverter.cs
- EntityDesignerBuildProvider.cs
- TypeDescriptor.cs
- ToolStripPanel.cs
- InvariantComparer.cs
- DataGridViewLinkColumn.cs
- FreezableOperations.cs
- ASCIIEncoding.cs
- NotifyIcon.cs
- BinaryMessageEncodingBindingElement.cs
- OpenFileDialog.cs
- ConnectionInterfaceCollection.cs
- RelatedImageListAttribute.cs
- TraceHandler.cs
- SingleTagSectionHandler.cs
- SimpleBitVector32.cs
- ContentTextAutomationPeer.cs
- StatusBarAutomationPeer.cs
- SqlAliasesReferenced.cs
- BaseAddressPrefixFilterElement.cs
- ModelFactory.cs
- WsdlParser.cs
- InternalDispatchObject.cs
- DesignerDataConnection.cs
- DrawListViewSubItemEventArgs.cs
- TextMarkerSource.cs
- followingquery.cs
- HttpRequestTraceRecord.cs
- SqlPersonalizationProvider.cs
- Point.cs
- SimpleLine.cs
- DefaultWorkflowTransactionService.cs
- MeshGeometry3D.cs
- wgx_sdk_version.cs
- TextCollapsingProperties.cs
- OptimizedTemplateContentHelper.cs
- UrlAuthFailedErrorFormatter.cs
- DataGridViewComboBoxCell.cs
- StylusShape.cs
- CompilerGlobalScopeAttribute.cs
- Floater.cs
- MenuCommand.cs
- GlobalEventManager.cs
- ColumnMapCopier.cs
- SqlTriggerAttribute.cs
- UrlMappingsModule.cs
- ImageBrush.cs
- ResourceReferenceExpression.cs
- XmlSchemaCollection.cs
- TableLayoutRowStyleCollection.cs
- SqlUtils.cs
- SqlConnectionStringBuilder.cs
- CreateParams.cs
- MobileControlDesigner.cs
- XPathDocument.cs
- TextEditor.cs
- DocumentViewerHelper.cs
- GifBitmapEncoder.cs
- XmlWriter.cs
- Attributes.cs
- RegexTree.cs
- Menu.cs
- CompilerParameters.cs
- WindowsListViewItemCheckBox.cs
- EntityTypeBase.cs
- ItemChangedEventArgs.cs
- WebPartCollection.cs
- ExpressionPrinter.cs
- ContentFilePart.cs
- XmlDataSourceView.cs
- BamlReader.cs
- AssemblySettingAttributes.cs
- ConfigUtil.cs
- DesignerHierarchicalDataSourceView.cs
- WebPartEditorOkVerb.cs
- OdbcCommandBuilder.cs
- BindingContext.cs
- DrawingContext.cs
- PlanCompiler.cs
- HttpGetServerProtocol.cs
- ServiceDescriptionReflector.cs
- SyndicationSerializer.cs
- File.cs
- FontFamilyIdentifier.cs
- DesignerProperties.cs
- ObjectNavigationPropertyMapping.cs
- SkipQueryOptionExpression.cs
- FocusTracker.cs
- PaperSource.cs
- XhtmlBasicValidatorAdapter.cs
- PolicyLevel.cs
- ListBoxAutomationPeer.cs
- EventMappingSettingsCollection.cs
- DispatcherObject.cs
- RandomNumberGenerator.cs
- IISMapPath.cs
- CqlIdentifiers.cs
- DataGridItem.cs