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
- TypefaceMap.cs
- SQLRoleProvider.cs
- ProviderSettingsCollection.cs
- HttpSessionStateWrapper.cs
- Function.cs
- SelectionUIService.cs
- Console.cs
- ObjectDataSourceEventArgs.cs
- EditBehavior.cs
- HostVisual.cs
- RemotingConfiguration.cs
- Gdiplus.cs
- EncryptedXml.cs
- WebSysDisplayNameAttribute.cs
- Exception.cs
- OpCodes.cs
- AttachedPropertyBrowsableAttribute.cs
- AttributeExtensions.cs
- ConstructorExpr.cs
- securitycriticaldataClass.cs
- BitmapEditor.cs
- AttachmentService.cs
- MultiTrigger.cs
- SoapWriter.cs
- CommandHelper.cs
- SplashScreenNativeMethods.cs
- WizardStepBase.cs
- ScrollChrome.cs
- ExpressionParser.cs
- IdentityValidationException.cs
- TransformBlockRequest.cs
- Convert.cs
- FixedHighlight.cs
- PreProcessInputEventArgs.cs
- DataGridViewTextBoxCell.cs
- FormatVersion.cs
- SqlCommandSet.cs
- RepeaterItem.cs
- FunctionQuery.cs
- TemplateColumn.cs
- CryptoApi.cs
- SystemIPInterfaceProperties.cs
- SiblingIterators.cs
- SerializationInfo.cs
- MapPathBasedVirtualPathProvider.cs
- NameTable.cs
- ImageEditor.cs
- ErrorTableItemStyle.cs
- Model3DGroup.cs
- ListParagraph.cs
- DesignerRegionCollection.cs
- ClientTarget.cs
- ArraySubsetEnumerator.cs
- SelectionPattern.cs
- JournalEntry.cs
- ScrollBarRenderer.cs
- DrawingContextDrawingContextWalker.cs
- ConfigurationStrings.cs
- DataSourceControlBuilder.cs
- OdbcTransaction.cs
- PropagatorResult.cs
- AsymmetricCryptoHandle.cs
- ReferencedType.cs
- MaterialGroup.cs
- EventRoute.cs
- TitleStyle.cs
- StrongNameKeyPair.cs
- ConfigXmlElement.cs
- MatrixTransform.cs
- MaskedTextProvider.cs
- CustomAttributeBuilder.cs
- UrlMappingsModule.cs
- DataRelation.cs
- WorkflowTimerService.cs
- WebBrowser.cs
- TabPanel.cs
- XmlIlGenerator.cs
- BlurBitmapEffect.cs
- HttpResponse.cs
- NullReferenceException.cs
- StateManagedCollection.cs
- DataSetMappper.cs
- BindingsSection.cs
- DataGridViewSortCompareEventArgs.cs
- SamlAuthorizationDecisionClaimResource.cs
- SpotLight.cs
- HtmlLabelAdapter.cs
- MobileControlDesigner.cs
- SystemIPGlobalProperties.cs
- TableSectionStyle.cs
- DefaultValidator.cs
- LambdaCompiler.Address.cs
- UnsafeMethods.cs
- ReadOnlyDictionary.cs
- BlockCollection.cs
- DefaultProxySection.cs
- CodeSnippetCompileUnit.cs
- XamlSerializerUtil.cs
- HtmlInputCheckBox.cs
- TransformerConfigurationWizardBase.cs