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
- XmlProcessingInstruction.cs
- AndAlso.cs
- InternalPermissions.cs
- BamlTreeMap.cs
- ResourceContainer.cs
- Font.cs
- Set.cs
- SelectedDatesCollection.cs
- RegexFCD.cs
- NativeRecognizer.cs
- BindingList.cs
- PageBuildProvider.cs
- MtomMessageEncoder.cs
- TemplateXamlTreeBuilder.cs
- BaseDataListComponentEditor.cs
- RSAOAEPKeyExchangeFormatter.cs
- COM2PropertyPageUITypeConverter.cs
- SourceFilter.cs
- SpellerStatusTable.cs
- XmlResolver.cs
- XsltArgumentList.cs
- Style.cs
- LogicalExpressionEditor.cs
- SerializationAttributes.cs
- FontSourceCollection.cs
- PersonalizationDictionary.cs
- MobileControlDesigner.cs
- CaseInsensitiveComparer.cs
- BaseHashHelper.cs
- BufferModeSettings.cs
- DataGridViewColumnEventArgs.cs
- CurrentChangingEventManager.cs
- XD.cs
- linebase.cs
- BitmapPalettes.cs
- EdmComplexTypeAttribute.cs
- DrawingContextDrawingContextWalker.cs
- DefaultAsyncDataDispatcher.cs
- VectorValueSerializer.cs
- BaseEntityWrapper.cs
- XmlDocument.cs
- XmlSiteMapProvider.cs
- ScriptReferenceEventArgs.cs
- SqlDependencyListener.cs
- DispatcherProcessingDisabled.cs
- ActivityWithResultValueSerializer.cs
- Int32AnimationBase.cs
- TargetException.cs
- ApplicationSettingsBase.cs
- KeyMatchBuilder.cs
- ProjectionNode.cs
- RemoteArgument.cs
- IndicShape.cs
- ExecutionProperties.cs
- DataGridViewCellValueEventArgs.cs
- TemplateBuilder.cs
- CompiledIdentityConstraint.cs
- XmlAtomicValue.cs
- UserPersonalizationStateInfo.cs
- ImageCreator.cs
- DeviceSpecific.cs
- CatalogPartCollection.cs
- AuthenticationModulesSection.cs
- NamespaceQuery.cs
- ContainerUtilities.cs
- FusionWrap.cs
- DataAccessor.cs
- RulePatternOps.cs
- TdsParameterSetter.cs
- RewritingPass.cs
- MostlySingletonList.cs
- bidPrivateBase.cs
- CapabilitiesRule.cs
- AttachInfo.cs
- ContentTextAutomationPeer.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- AdvancedBindingPropertyDescriptor.cs
- ProxyGenerator.cs
- CatchBlock.cs
- NameTable.cs
- ResXResourceSet.cs
- AncestorChangedEventArgs.cs
- WebPartConnection.cs
- InstanceContextManager.cs
- Path.cs
- JulianCalendar.cs
- SiteMapDataSourceView.cs
- RowToParametersTransformer.cs
- SoapExtensionReflector.cs
- SizeValueSerializer.cs
- SoapDocumentServiceAttribute.cs
- UIInitializationException.cs
- AsyncOperationManager.cs
- TimeManager.cs
- InputProcessorProfiles.cs
- ScrollBar.cs
- Listbox.cs
- TransformProviderWrapper.cs
- MD5CryptoServiceProvider.cs
- SqlDataReader.cs