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
- ConnectionPointConverter.cs
- ExtractedStateEntry.cs
- ReadWriteSpinLock.cs
- ChannelServices.cs
- NavigationFailedEventArgs.cs
- MetadataExchangeClient.cs
- SHA512CryptoServiceProvider.cs
- XmlSchemaAttribute.cs
- KnownTypesProvider.cs
- DockPatternIdentifiers.cs
- BamlLocalizationDictionary.cs
- DataServiceProcessingPipelineEventArgs.cs
- BatchParser.cs
- GetKeyedHashRequest.cs
- WinEventHandler.cs
- GraphicsState.cs
- WindowsScrollBarBits.cs
- QuaternionRotation3D.cs
- UnionCqlBlock.cs
- ValueTypeFieldReference.cs
- FullTextState.cs
- DbInsertCommandTree.cs
- WebPartZoneCollection.cs
- Point4DConverter.cs
- TargetControlTypeAttribute.cs
- EntityDataSourceDesignerHelper.cs
- RetrieveVirtualItemEventArgs.cs
- InkCanvasSelection.cs
- FlowNode.cs
- TextServicesCompartmentEventSink.cs
- CellLabel.cs
- BitmapEffectGroup.cs
- WebSysDisplayNameAttribute.cs
- ImageFormat.cs
- Message.cs
- EntityViewGenerationAttribute.cs
- SurrogateEncoder.cs
- MessageBuilder.cs
- odbcmetadatacollectionnames.cs
- TrackingLocation.cs
- Imaging.cs
- NativeMethods.cs
- DataGridViewCellConverter.cs
- Properties.cs
- LinkButton.cs
- ThrowHelper.cs
- StringValidatorAttribute.cs
- HtmlImage.cs
- DataGridRow.cs
- LineSegment.cs
- EntityObject.cs
- DataSourceIDConverter.cs
- Stylus.cs
- Internal.cs
- DataTableMapping.cs
- GPPOINT.cs
- HitTestParameters3D.cs
- Decorator.cs
- StringOutput.cs
- BasicCellRelation.cs
- OracleCommand.cs
- FormattedTextSymbols.cs
- _AutoWebProxyScriptHelper.cs
- Lock.cs
- SystemIPInterfaceProperties.cs
- EndEvent.cs
- ChildrenQuery.cs
- DispatchChannelSink.cs
- DataView.cs
- EdmItemError.cs
- CqlErrorHelper.cs
- Int16KeyFrameCollection.cs
- UdpSocketReceiveManager.cs
- KerberosReceiverSecurityToken.cs
- TextRangeBase.cs
- CompoundFileReference.cs
- ViewBase.cs
- DesignTimeParseData.cs
- PropertyChangingEventArgs.cs
- TypeExtensionConverter.cs
- Mutex.cs
- RuntimeWrappedException.cs
- SerializationInfo.cs
- HttpException.cs
- MultiDataTrigger.cs
- Pair.cs
- DataPagerFieldItem.cs
- Fault.cs
- GridItemPattern.cs
- HwndTarget.cs
- CacheEntry.cs
- EncoderNLS.cs
- Int32CollectionConverter.cs
- ColorContextHelper.cs
- MatchingStyle.cs
- ExtractorMetadata.cs
- ZipIOBlockManager.cs
- Slider.cs
- DateRangeEvent.cs
- SimpleTypeResolver.cs