Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- XdrBuilder.cs
- HttpResponseInternalWrapper.cs
- AccessDataSourceView.cs
- CodeAttachEventStatement.cs
- CallbackHandler.cs
- BitmapEffectInput.cs
- XmlNavigatorStack.cs
- XmlAttributes.cs
- BoundField.cs
- HtmlButton.cs
- SkewTransform.cs
- TableCell.cs
- XmlCharCheckingWriter.cs
- Events.cs
- SafeViewOfFileHandle.cs
- TextTreeExtractElementUndoUnit.cs
- OleDbPropertySetGuid.cs
- QuaternionRotation3D.cs
- CheckBoxField.cs
- DbTransaction.cs
- ScriptResourceMapping.cs
- AttributeAction.cs
- String.cs
- FtpRequestCacheValidator.cs
- NullableDoubleSumAggregationOperator.cs
- sqlinternaltransaction.cs
- UxThemeWrapper.cs
- WebPartDeleteVerb.cs
- InfoCardServiceInstallComponent.cs
- BinarySecretSecurityToken.cs
- ValidatorCompatibilityHelper.cs
- XhtmlBasicListAdapter.cs
- WebPartDisplayMode.cs
- SmiTypedGetterSetter.cs
- COM2ComponentEditor.cs
- TreeBuilder.cs
- WebCategoryAttribute.cs
- MultiAsyncResult.cs
- ConfigurationValue.cs
- EnterpriseServicesHelper.cs
- DatagramAdapter.cs
- SettingsProviderCollection.cs
- XmlSchemaAttributeGroup.cs
- ColorConvertedBitmap.cs
- SQLSingleStorage.cs
- Command.cs
- StorageModelBuildProvider.cs
- FixedHighlight.cs
- UserValidatedEventArgs.cs
- precedingsibling.cs
- TextRunCacheImp.cs
- NativeMethods.cs
- DbConnectionStringBuilder.cs
- login.cs
- x509store.cs
- ProtocolsConfiguration.cs
- FileDialog.cs
- EdmComplexTypeAttribute.cs
- Win32KeyboardDevice.cs
- RestHandlerFactory.cs
- WindowVisualStateTracker.cs
- TimestampInformation.cs
- OdbcReferenceCollection.cs
- HtmlDocument.cs
- ChildTable.cs
- SqlAliasesReferenced.cs
- EditorBrowsableAttribute.cs
- VectorKeyFrameCollection.cs
- TriState.cs
- FloaterBaseParaClient.cs
- StringOutput.cs
- ArcSegment.cs
- TreeIterator.cs
- PropertyMappingExceptionEventArgs.cs
- SharedStatics.cs
- DurableInstanceContextProvider.cs
- Logging.cs
- DPTypeDescriptorContext.cs
- IdnMapping.cs
- ImageAutomationPeer.cs
- TemplateXamlParser.cs
- GridViewColumnHeaderAutomationPeer.cs
- FieldInfo.cs
- WorkflowRuntimeSection.cs
- SemanticValue.cs
- thaishape.cs
- MinimizableAttributeTypeConverter.cs
- FileNameEditor.cs
- CacheVirtualItemsEvent.cs
- TypedRowGenerator.cs
- LambdaCompiler.Lambda.cs
- BackgroundWorker.cs
- TempFiles.cs
- RSAOAEPKeyExchangeFormatter.cs
- DbDeleteCommandTree.cs
- PlaceHolder.cs
- SafeRightsManagementEnvironmentHandle.cs
- InstanceDataCollectionCollection.cs
- DataGridViewLinkColumn.cs
- ThicknessAnimationBase.cs