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
- LocalValueEnumerator.cs
- Set.cs
- XmlSchemaComplexContent.cs
- CorrelationValidator.cs
- RoutedEventHandlerInfo.cs
- OutputCacheModule.cs
- RuleProcessor.cs
- PropertyFilterAttribute.cs
- QuaternionConverter.cs
- AvTraceFormat.cs
- SizeChangedInfo.cs
- FixedSOMFixedBlock.cs
- CompositeKey.cs
- EntryWrittenEventArgs.cs
- CharKeyFrameCollection.cs
- WebPartConnectionsDisconnectVerb.cs
- FontUnit.cs
- SQLInt64.cs
- CryptographicAttribute.cs
- MessageQueuePermission.cs
- XPathCompileException.cs
- CurrencyWrapper.cs
- ErrorInfoXmlDocument.cs
- PocoPropertyAccessorStrategy.cs
- XhtmlTextWriter.cs
- COM2IDispatchConverter.cs
- JsonQueryStringConverter.cs
- TraceUtils.cs
- EventHandlingScope.cs
- DataGridPageChangedEventArgs.cs
- XmlStreamedByteStreamReader.cs
- ConfigXmlText.cs
- Point3DKeyFrameCollection.cs
- BindingContext.cs
- AuthenticationService.cs
- Int32.cs
- wgx_render.cs
- XmlQuerySequence.cs
- TdsEnums.cs
- WebConfigurationHostFileChange.cs
- ProxyWebPartConnectionCollection.cs
- ThreadStaticAttribute.cs
- PagesChangedEventArgs.cs
- Control.cs
- GridViewCellAutomationPeer.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- RoutedEventArgs.cs
- EtwTrace.cs
- SqlWebEventProvider.cs
- DeadCharTextComposition.cs
- AsymmetricKeyExchangeFormatter.cs
- configsystem.cs
- XmlRawWriter.cs
- ChangePasswordDesigner.cs
- CodeNamespaceImportCollection.cs
- RIPEMD160Managed.cs
- CodeAccessPermission.cs
- PageThemeBuildProvider.cs
- ImageSource.cs
- RegexWriter.cs
- Transform3DGroup.cs
- WindowsListViewItemCheckBox.cs
- DataMemberFieldEditor.cs
- SecurityMessageProperty.cs
- ThrowHelper.cs
- TracedNativeMethods.cs
- ScriptingProfileServiceSection.cs
- Panel.cs
- WebPartConnectionsCloseVerb.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- TableStyle.cs
- TryExpression.cs
- CmsUtils.cs
- PersistenceProviderElement.cs
- OdbcRowUpdatingEvent.cs
- CurrentTimeZone.cs
- Trace.cs
- SmtpException.cs
- IteratorDescriptor.cs
- VersionConverter.cs
- SchemaDeclBase.cs
- HebrewNumber.cs
- GridView.cs
- FormsAuthenticationConfiguration.cs
- EnumerableRowCollectionExtensions.cs
- ViewCellRelation.cs
- ServerIdentity.cs
- Encoder.cs
- HTTPNotFoundHandler.cs
- Setter.cs
- GridViewDeletedEventArgs.cs
- Base64Encoder.cs
- DeleteMemberBinder.cs
- Camera.cs
- WindowsButton.cs
- RawStylusInputCustomData.cs
- NoneExcludedImageIndexConverter.cs
- SapiAttributeParser.cs
- LassoSelectionBehavior.cs
- OperationAbortedException.cs