Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / GeometryGroup.cs / 1305600 / 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
- CachedFontFace.cs
- ViewGenerator.cs
- WindowsListView.cs
- TypeUsageBuilder.cs
- XmlMtomWriter.cs
- ProxyAttribute.cs
- DataGridViewColumnCollection.cs
- XmlSchemaSimpleContentExtension.cs
- HtmlInputReset.cs
- AnimationTimeline.cs
- LockCookie.cs
- DateBoldEvent.cs
- CallbackValidator.cs
- RNGCryptoServiceProvider.cs
- OutputScope.cs
- ByteRangeDownloader.cs
- TextSelection.cs
- SqlInternalConnection.cs
- TypeGeneratedEventArgs.cs
- ComboBoxItem.cs
- IOThreadTimer.cs
- BitmapEffectGroup.cs
- HtmlInputControl.cs
- SamlNameIdentifierClaimResource.cs
- Expander.cs
- ViewGenerator.cs
- DynamicValidator.cs
- Module.cs
- DataPagerCommandEventArgs.cs
- OleAutBinder.cs
- SimpleApplicationHost.cs
- XmlSchemas.cs
- OutputWindow.cs
- StatementContext.cs
- XmlReflectionImporter.cs
- ServiceSecurityAuditElement.cs
- HeaderPanel.cs
- _SSPIWrapper.cs
- RowVisual.cs
- DLinqColumnProvider.cs
- DataGridItem.cs
- XmlSignificantWhitespace.cs
- DecimalAnimationUsingKeyFrames.cs
- OdbcParameter.cs
- AttributeSetAction.cs
- TextEndOfParagraph.cs
- ScriptControl.cs
- SrgsDocument.cs
- WebFormDesignerActionService.cs
- BinaryParser.cs
- Panel.cs
- DataGridTableCollection.cs
- XNameConverter.cs
- QueryStoreStatusRequest.cs
- ADConnectionHelper.cs
- ArgumentNullException.cs
- BlurEffect.cs
- XmlSerializationWriter.cs
- FunctionImportMapping.cs
- ReadOnlyAttribute.cs
- StringFreezingAttribute.cs
- LinearGradientBrush.cs
- StylusCollection.cs
- SymLanguageVendor.cs
- PrinterSettings.cs
- WizardPanel.cs
- ImageConverter.cs
- Int16AnimationUsingKeyFrames.cs
- HotCommands.cs
- _ContextAwareResult.cs
- SubMenuStyleCollectionEditor.cs
- AssertSection.cs
- AnimationLayer.cs
- XmlQueryOutput.cs
- CommandValueSerializer.cs
- FixedSOMImage.cs
- ExtensionSimplifierMarkupObject.cs
- AspNetSynchronizationContext.cs
- HttpModuleActionCollection.cs
- WindowsRichEdit.cs
- Constraint.cs
- ObjectIDGenerator.cs
- PagerSettings.cs
- BulletedListEventArgs.cs
- GenericEnumConverter.cs
- EmissiveMaterial.cs
- ZoneIdentityPermission.cs
- DbgUtil.cs
- PatternMatcher.cs
- MappingMetadataHelper.cs
- PerspectiveCamera.cs
- ToolStripOverflow.cs
- GroupedContextMenuStrip.cs
- AccessViolationException.cs
- ClientConfigurationHost.cs
- MetadataItemEmitter.cs
- LambdaExpression.cs
- ProcessThreadCollection.cs
- QilXmlReader.cs
- ControlEvent.cs