Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / System / Windows / Media / GeometryGroup.cs / 1 / GeometryGroup.cs
//----------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// Description: Implementation of GeometryGroup
//
// History:
// 2004/11/11-Michka
// Created it
//
//---------------------------------------------------------------------------
using System;
using MS.Internal;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Diagnostics;
using System.Reflection;
using System.Collections;
using System.Text;
using System.Globalization;
using System.Windows.Media;
using System.Windows;
using System.Windows.Media.Composition;
using System.Text.RegularExpressions;
using System.Windows.Media.Animation;
using System.Windows.Markup;
using System.Runtime.InteropServices;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows.Media
{
#region GeometryGroup
///
/// GeometryGroup
///
[ContentProperty("Children")]
public sealed partial class GeometryGroup : Geometry
{
#region Constructors
///
/// Default constructor
///
public GeometryGroup()
{
}
#endregion
#region Overrides
///
/// GetPathGeometryData - returns a struct which contains this Geometry represented
/// as a path geometry's serialized format.
///
internal override PathGeometryData GetPathGeometryData()
{
PathGeometry pathGeometry = GetAsPathGeometry();
return pathGeometry.GetPathGeometryData();
}
internal override PathGeometry GetAsPathGeometry()
{
PathGeometry pg = new PathGeometry();
pg.AddGeometry(this);
pg.FillRule = FillRule;
Debug.Assert(pg.CanFreeze);
return pg;
}
#endregion
#region GetPathFigureCollection
internal override PathFigureCollection GetTransformedFigureCollection(Transform transform)
{
// Combine the transform argument with the internal transform
Transform combined = new MatrixTransform(GetCombinedMatrix(transform));
PathFigureCollection result = new PathFigureCollection();
GeometryCollection children = Children;
if (children != null)
{
for (int i = 0; i < children.Count; i++)
{
PathFigureCollection pathFigures = children.Internal_GetItem(i).GetTransformedFigureCollection(combined);
if (pathFigures != null)
{
int count = pathFigures.Count;
for (int j = 0; j < count; ++j)
{
result.Add(pathFigures[j]);
}
}
}
}
return result;
}
#endregion
#region IsEmpty
///
/// Returns true if this geometry is empty
///
public override bool IsEmpty()
{
GeometryCollection children = Children;
if (children == null)
{
return true;
}
for (int i=0; i
/// Returns true if this geometry may have curved segments
///
public override bool MayHaveCurves()
{
GeometryCollection children = Children;
if (children == null)
{
return false;
}
for (int i = 0; i < children.Count; i++)
{
if (((Geometry)children[i]).MayHaveCurves())
{
return true;
}
}
return false;
}
}
#endregion
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// Description: Implementation of GeometryGroup
//
// History:
// 2004/11/11-Michka
// Created it
//
//---------------------------------------------------------------------------
using System;
using MS.Internal;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Diagnostics;
using System.Reflection;
using System.Collections;
using System.Text;
using System.Globalization;
using System.Windows.Media;
using System.Windows;
using System.Windows.Media.Composition;
using System.Text.RegularExpressions;
using System.Windows.Media.Animation;
using System.Windows.Markup;
using System.Runtime.InteropServices;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows.Media
{
#region GeometryGroup
///
/// GeometryGroup
///
[ContentProperty("Children")]
public sealed partial class GeometryGroup : Geometry
{
#region Constructors
///
/// Default constructor
///
public GeometryGroup()
{
}
#endregion
#region Overrides
///
/// GetPathGeometryData - returns a struct which contains this Geometry represented
/// as a path geometry's serialized format.
///
internal override PathGeometryData GetPathGeometryData()
{
PathGeometry pathGeometry = GetAsPathGeometry();
return pathGeometry.GetPathGeometryData();
}
internal override PathGeometry GetAsPathGeometry()
{
PathGeometry pg = new PathGeometry();
pg.AddGeometry(this);
pg.FillRule = FillRule;
Debug.Assert(pg.CanFreeze);
return pg;
}
#endregion
#region GetPathFigureCollection
internal override PathFigureCollection GetTransformedFigureCollection(Transform transform)
{
// Combine the transform argument with the internal transform
Transform combined = new MatrixTransform(GetCombinedMatrix(transform));
PathFigureCollection result = new PathFigureCollection();
GeometryCollection children = Children;
if (children != null)
{
for (int i = 0; i < children.Count; i++)
{
PathFigureCollection pathFigures = children.Internal_GetItem(i).GetTransformedFigureCollection(combined);
if (pathFigures != null)
{
int count = pathFigures.Count;
for (int j = 0; j < count; ++j)
{
result.Add(pathFigures[j]);
}
}
}
}
return result;
}
#endregion
#region IsEmpty
///
/// Returns true if this geometry is empty
///
public override bool IsEmpty()
{
GeometryCollection children = Children;
if (children == null)
{
return true;
}
for (int i=0; i
/// Returns true if this geometry may have curved segments
///
public override bool MayHaveCurves()
{
GeometryCollection children = Children;
if (children == null)
{
return false;
}
for (int i = 0; i < children.Count; i++)
{
if (((Geometry)children[i]).MayHaveCurves())
{
return true;
}
}
return false;
}
}
#endregion
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HelpInfo.cs
- PhysicalFontFamily.cs
- TextUtf8RawTextWriter.cs
- TypeBuilderInstantiation.cs
- ModuleElement.cs
- LinkedResourceCollection.cs
- SkinIDTypeConverter.cs
- IdentityHolder.cs
- RowParagraph.cs
- LoginName.cs
- DeviceFiltersSection.cs
- LocalBuilder.cs
- ListManagerBindingsCollection.cs
- MaterialCollection.cs
- XpsTokenContext.cs
- EvidenceBase.cs
- ClientRolePrincipal.cs
- SignedInfo.cs
- CacheDependency.cs
- PlatformNotSupportedException.cs
- MobileRedirect.cs
- DesignerActionPropertyItem.cs
- WebPart.cs
- PathStreamGeometryContext.cs
- InstanceNotFoundException.cs
- DummyDataSource.cs
- ProtocolsConfigurationEntry.cs
- ConfigurationFileMap.cs
- WebReferenceCollection.cs
- SqlUserDefinedTypeAttribute.cs
- ISFTagAndGuidCache.cs
- SchemaImporter.cs
- DataControlField.cs
- ChineseLunisolarCalendar.cs
- BehaviorEditorPart.cs
- safemediahandle.cs
- AxHostDesigner.cs
- HtmlShim.cs
- UnsafeNativeMethodsTablet.cs
- TypeSystem.cs
- Int32CAMarshaler.cs
- ToolboxItemCollection.cs
- DataGridViewCellEventArgs.cs
- ElementMarkupObject.cs
- QueueProcessor.cs
- CollectionConverter.cs
- ExtendedPropertiesHandler.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- AddInDeploymentState.cs
- Int32Collection.cs
- WebConfigurationFileMap.cs
- FixedTextBuilder.cs
- QuaternionValueSerializer.cs
- WebPartConnectionsConfigureVerb.cs
- ISAPIRuntime.cs
- MessageDescriptionCollection.cs
- EncryptedKey.cs
- SqlDependencyListener.cs
- TextLine.cs
- SchemaAttDef.cs
- XPathNodeHelper.cs
- oledbconnectionstring.cs
- GridViewSortEventArgs.cs
- StylusPointPropertyInfo.cs
- DataServiceRequestOfT.cs
- ScopelessEnumAttribute.cs
- Stack.cs
- WorkItem.cs
- EnumUnknown.cs
- Column.cs
- ClientEventManager.cs
- GreenMethods.cs
- ContextMenu.cs
- ListViewItemSelectionChangedEvent.cs
- FormViewDesigner.cs
- View.cs
- EventManager.cs
- BitStack.cs
- CompleteWizardStep.cs
- DbDeleteCommandTree.cs
- FixedSOMContainer.cs
- HttpCookie.cs
- WebPartAuthorizationEventArgs.cs
- SelectingProviderEventArgs.cs
- DataRecordObjectView.cs
- UICuesEvent.cs
- RawStylusActions.cs
- CompModSwitches.cs
- LinearKeyFrames.cs
- HtmlUtf8RawTextWriter.cs
- RuleProcessor.cs
- Converter.cs
- DefaultPropertyAttribute.cs
- SerialPort.cs
- WeakKeyDictionary.cs
- SettingsPropertyCollection.cs
- PrintController.cs
- DataKey.cs
- TransactedReceiveScope.cs
- QuadraticEase.cs