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
- XPathPatternParser.cs
- Formatter.cs
- CompilerTypeWithParams.cs
- WebPartsSection.cs
- ThreadInterruptedException.cs
- ComponentDispatcher.cs
- MsmqIntegrationElement.cs
- RegexInterpreter.cs
- RoleManagerModule.cs
- Label.cs
- StrokeFIndices.cs
- FixedPage.cs
- PrimitiveCodeDomSerializer.cs
- DictionarySurrogate.cs
- Point4DConverter.cs
- NativeMethods.cs
- WebPartConnectionsConfigureVerb.cs
- SQLBoolean.cs
- PublisherIdentityPermission.cs
- BmpBitmapDecoder.cs
- ContainsSearchOperator.cs
- DataTableReaderListener.cs
- ListItemConverter.cs
- SqlXmlStorage.cs
- IpcManager.cs
- PersistenceProviderDirectory.cs
- Image.cs
- SignatureToken.cs
- ErrorsHelper.cs
- RouteParametersHelper.cs
- FloatSumAggregationOperator.cs
- DataColumnMappingCollection.cs
- NavigationProperty.cs
- TypedCompletedAsyncResult.cs
- KoreanCalendar.cs
- TrackingMemoryStreamFactory.cs
- LocationEnvironment.cs
- Debug.cs
- SoapTypeAttribute.cs
- SQLMembershipProvider.cs
- CanExecuteRoutedEventArgs.cs
- DataKey.cs
- GlyphRunDrawing.cs
- RtfNavigator.cs
- Math.cs
- TabletDevice.cs
- DataControlButton.cs
- SourceElementsCollection.cs
- FillErrorEventArgs.cs
- Command.cs
- ReadOnlyDataSource.cs
- DiscoveryClientReferences.cs
- CompModSwitches.cs
- Line.cs
- BaseValidator.cs
- TheQuery.cs
- ActionFrame.cs
- EdmSchemaError.cs
- HttpResponse.cs
- ComplexLine.cs
- TypeConstant.cs
- SizeAnimationBase.cs
- Socket.cs
- CellParagraph.cs
- DetailsViewRowCollection.cs
- ResourceDescriptionAttribute.cs
- MaterializeFromAtom.cs
- DataContractSerializerOperationBehavior.cs
- PathFigure.cs
- DropShadowEffect.cs
- HGlobalSafeHandle.cs
- EntityCollection.cs
- DataGridViewIntLinkedList.cs
- ReadWriteSpinLock.cs
- PopupEventArgs.cs
- ContactManager.cs
- Schedule.cs
- ValidatorCollection.cs
- HttpDictionary.cs
- RegexTree.cs
- _TimerThread.cs
- Serializer.cs
- XmlSchemaComplexType.cs
- ScrollBarRenderer.cs
- AspNetSynchronizationContext.cs
- ExpressionBuilder.cs
- FileSystemWatcher.cs
- Vector.cs
- ProfileModule.cs
- SQLString.cs
- WindowsListBox.cs
- WindowsFormsHelpers.cs
- shaperfactoryquerycachekey.cs
- XamlTemplateSerializer.cs
- DataGridViewSelectedColumnCollection.cs
- Parameter.cs
- MenuItemStyleCollection.cs
- HtmlForm.cs
- Crc32.cs
- ReceiveActivityDesigner.cs