Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media3D / Model3D.cs / 1305600 / Model3D.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: 3D model implementation.
//
// See spec at http://avalon/medialayer/Specifications/Avalon3D%20API%20Spec.mht
//
// History:
// 06/18/2003 : t-gregr - Created
//
//---------------------------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Animation;
using MS.Internal.Media3D;
namespace System.Windows.Media.Media3D
{
///
/// Model3D is the abstract model that everything builds from.
///
[Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)] // cannot be read & localized as string
public abstract partial class Model3D : Animatable
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
// Prevent 3rd parties from extending this abstract base class.
internal Model3D() {}
#endregion Constructors
//------------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
//------------------------------------------------------
//
// Public Properties
//
//------------------------------------------------------
#region Public Properties
///
/// Gets bounds for this model.
///
public Rect3D Bounds
{
get
{
ReadPreamble();
return CalculateSubgraphBoundsOuterSpace();
}
}
#endregion Public Properties
//-----------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
#region Internal Methods
// NOTE: Model3D hit testing takes the rayParams in the outer space of the
// Model3D. That is, RayHitTest() will apply this model's transform
// to the ray for the caller.
//
// This is different than Visual hit testing which does not transform
// the hit testing parameters by the Visual's transform.
internal void RayHitTest(RayHitTestParameters rayParams)
{
Transform3D transform = Transform;
rayParams.PushModelTransform(transform);
RayHitTestCore(rayParams);
rayParams.PopTransform(transform);
}
internal abstract void RayHitTestCore(RayHitTestParameters rayParams);
///
/// Returns the bounds of the Model3D subgraph rooted at this Model3D.
///
/// Outer space refers to the space after this Model's Transform is
/// applied -- or said another way, applying a transform to this Model
/// affects it's outer bounds. (While its inner bounds remain unchanged.)
///
internal Rect3D CalculateSubgraphBoundsOuterSpace()
{
Rect3D innerBounds = CalculateSubgraphBoundsInnerSpace();
return M3DUtil.ComputeTransformedAxisAlignedBoundingBox(ref innerBounds, Transform);
}
///
/// Returns the bounds of the Model3D subgraph rooted at this Model3D.
///
/// Inner space refers to the space before this Model's Transform is
/// applied -- or said another way, applying a transform to this Model
/// only affects it's outer bounds. Its inner bounds remain unchanged.
///
internal abstract Rect3D CalculateSubgraphBoundsInnerSpace();
#endregion Internal Methods
}
}
// 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
- PersistenceTypeAttribute.cs
- HtmlInputRadioButton.cs
- ToolStripPanelCell.cs
- XamlHostingConfiguration.cs
- NoClickablePointException.cs
- VerticalAlignConverter.cs
- ProviderManager.cs
- RuleSettings.cs
- EventLogReader.cs
- CompiledQuery.cs
- HwndSubclass.cs
- BitmapPalettes.cs
- ConversionContext.cs
- LOSFormatter.cs
- TokenCreationException.cs
- OleDragDropHandler.cs
- XPathNodeIterator.cs
- OrthographicCamera.cs
- DataGridAutoFormatDialog.cs
- MessagePartSpecification.cs
- XmlTextWriter.cs
- FileNotFoundException.cs
- AsyncPostBackTrigger.cs
- OdbcRowUpdatingEvent.cs
- Util.cs
- DragSelectionMessageFilter.cs
- URL.cs
- VariableQuery.cs
- ValidationManager.cs
- _SingleItemRequestCache.cs
- CacheSection.cs
- OdbcCommandBuilder.cs
- DataContractSerializerOperationFormatter.cs
- DynamicValueConverter.cs
- ExecutionContext.cs
- ScopelessEnumAttribute.cs
- RewritingProcessor.cs
- MatrixIndependentAnimationStorage.cs
- IItemProperties.cs
- SchemaTableColumn.cs
- ThemeDictionaryExtension.cs
- BooleanAnimationUsingKeyFrames.cs
- GridViewPageEventArgs.cs
- StorageTypeMapping.cs
- BaseServiceProvider.cs
- PingReply.cs
- HttpConfigurationContext.cs
- SqlClientPermission.cs
- SHA256Managed.cs
- SectionInput.cs
- DecimalAnimationBase.cs
- TextRangeEditLists.cs
- ToolbarAUtomationPeer.cs
- CodeParameterDeclarationExpression.cs
- EntitySetDataBindingList.cs
- AsymmetricKeyExchangeDeformatter.cs
- Rectangle.cs
- MouseGestureConverter.cs
- SecurityKeyType.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- EventListenerClientSide.cs
- SharedPersonalizationStateInfo.cs
- DaylightTime.cs
- CustomPopupPlacement.cs
- TdsParserHelperClasses.cs
- HwndTarget.cs
- CreateUserErrorEventArgs.cs
- UInt64Storage.cs
- Tablet.cs
- XPathSelfQuery.cs
- Point3DCollectionValueSerializer.cs
- TypeElement.cs
- WpfMemberInvoker.cs
- UpdatePanelTriggerCollection.cs
- EntityClassGenerator.cs
- GradientStop.cs
- FacetChecker.cs
- IdleTimeoutMonitor.cs
- LinearGradientBrush.cs
- MetadataAssemblyHelper.cs
- DataGridViewControlCollection.cs
- XmlNodeChangedEventArgs.cs
- FollowerQueueCreator.cs
- InteropAutomationProvider.cs
- WindowsUpDown.cs
- BinaryFormatterWriter.cs
- DataBindingCollectionConverter.cs
- SessionState.cs
- LambdaCompiler.Binary.cs
- isolationinterop.cs
- IsolatedStorageFilePermission.cs
- CommandManager.cs
- XmlAttribute.cs
- UnsignedPublishLicense.cs
- IsolatedStorageException.cs
- _RequestCacheProtocol.cs
- UnsafeNativeMethodsTablet.cs
- SerializeAbsoluteContext.cs
- InfoCardX509Validator.cs
- DataContractJsonSerializer.cs