Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / System / Windows / Media3D / Point3D.cs / 1 / Point3D.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: 3D point implementation.
//
// See spec at http://avalon/medialayer/Specifications/Avalon3D%20API%20Spec.mht
//
// History:
// 06/02/2003 : t-gregr - Created
//
//---------------------------------------------------------------------------
using System.Windows;
using System.Windows.Media.Media3D;
using System;
namespace System.Windows.Media.Media3D
{
///
/// Point3D - 3D point representation.
/// Defaults to (0,0,0).
///
public partial struct Point3D
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
///
/// Constructor that sets point's initial values.
///
/// Value of the X coordinate of the new point.
/// Value of the Y coordinate of the new point.
/// Value of the Z coordinate of the new point.
public Point3D(double x, double y, double z)
{
_x = x;
_y = y;
_z = z;
}
#endregion Constructors
//------------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
#region Public Methods
///
/// Offset - update point position by adding offsetX to X, offsetY to Y, and offsetZ to Z.
///
/// Offset in the X direction.
/// Offset in the Y direction.
/// Offset in the Z direction.
public void Offset(double offsetX, double offsetY, double offsetZ)
{
_x += offsetX;
_y += offsetY;
_z += offsetZ;
}
///
/// Point3D + Vector3D addition.
///
/// Point being added.
/// Vector being added.
/// Result of addition.
public static Point3D operator +(Point3D point, Vector3D vector)
{
return new Point3D(point._x + vector._x,
point._y + vector._y,
point._z + vector._z);
}
///
/// Point3D + Vector3D addition.
///
/// Point being added.
/// Vector being added.
/// Result of addition.
public static Point3D Add(Point3D point, Vector3D vector)
{
return new Point3D(point._x + vector._x,
point._y + vector._y,
point._z + vector._z);
}
///
/// Point3D - Vector3D subtraction.
///
/// Point from which vector is being subtracted.
/// Vector being subtracted from the point.
/// Result of subtraction.
public static Point3D operator -(Point3D point, Vector3D vector)
{
return new Point3D(point._x - vector._x,
point._y - vector._y,
point._z - vector._z);
}
///
/// Point3D - Vector3D subtraction.
///
/// Point from which vector is being subtracted.
/// Vector being subtracted from the point.
/// Result of subtraction.
public static Point3D Subtract(Point3D point, Vector3D vector)
{
return new Point3D(point._x - vector._x,
point._y - vector._y,
point._z - vector._z);
}
///
/// Subtraction.
///
/// Point from which we are subtracting the second point.
/// Point being subtracted.
/// Vector between the two points.
public static Vector3D operator -(Point3D point1, Point3D point2)
{
return new Vector3D(point1._x - point2._x,
point1._y - point2._y,
point1._z - point2._z);
}
///
/// Subtraction.
///
/// Point from which we are subtracting the second point.
/// Point being subtracted.
/// Vector between the two points.
public static Vector3D Subtract(Point3D point1, Point3D point2)
{
Vector3D v = new Vector3D();
Subtract(ref point1, ref point2, out v);
return v;
}
///
/// Faster internal version of Subtract that avoids copies
///
/// p1 and p2 to a passed by ref for perf and ARE NOT MODIFIED
///
internal static void Subtract(ref Point3D p1, ref Point3D p2, out Vector3D result)
{
result._x = p1._x - p2._x;
result._y = p1._y - p2._y;
result._z = p1._z - p2._z;
}
///
/// Point3D * Matrix3D multiplication.
///
/// Point being transformed.
/// Transformation matrix applied to the point.
/// Result of the transformation matrix applied to the point.
public static Point3D operator *(Point3D point, Matrix3D matrix)
{
return matrix.Transform(point);
}
///
/// Point3D * Matrix3D multiplication.
///
/// Point being transformed.
/// Transformation matrix applied to the point.
/// Result of the transformation matrix applied to the point.
public static Point3D Multiply(Point3D point, Matrix3D matrix)
{
return matrix.Transform(point);
}
///
/// Explicit conversion to Vector3D.
///
/// Given point.
/// Vector representing the point.
public static explicit operator Vector3D(Point3D point)
{
return new Vector3D(point._x, point._y, point._z);
}
///
/// Explicit conversion to Point4D.
///
/// Given point.
/// 4D point representing the 3D point.
public static explicit operator Point4D(Point3D point)
{
return new Point4D(point._x, point._y, point._z, 1.0);
}
#endregion Public Methods
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: 3D point implementation.
//
// See spec at http://avalon/medialayer/Specifications/Avalon3D%20API%20Spec.mht
//
// History:
// 06/02/2003 : t-gregr - Created
//
//---------------------------------------------------------------------------
using System.Windows;
using System.Windows.Media.Media3D;
using System;
namespace System.Windows.Media.Media3D
{
///
/// Point3D - 3D point representation.
/// Defaults to (0,0,0).
///
public partial struct Point3D
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
///
/// Constructor that sets point's initial values.
///
/// Value of the X coordinate of the new point.
/// Value of the Y coordinate of the new point.
/// Value of the Z coordinate of the new point.
public Point3D(double x, double y, double z)
{
_x = x;
_y = y;
_z = z;
}
#endregion Constructors
//------------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
#region Public Methods
///
/// Offset - update point position by adding offsetX to X, offsetY to Y, and offsetZ to Z.
///
/// Offset in the X direction.
/// Offset in the Y direction.
/// Offset in the Z direction.
public void Offset(double offsetX, double offsetY, double offsetZ)
{
_x += offsetX;
_y += offsetY;
_z += offsetZ;
}
///
/// Point3D + Vector3D addition.
///
/// Point being added.
/// Vector being added.
/// Result of addition.
public static Point3D operator +(Point3D point, Vector3D vector)
{
return new Point3D(point._x + vector._x,
point._y + vector._y,
point._z + vector._z);
}
///
/// Point3D + Vector3D addition.
///
/// Point being added.
/// Vector being added.
/// Result of addition.
public static Point3D Add(Point3D point, Vector3D vector)
{
return new Point3D(point._x + vector._x,
point._y + vector._y,
point._z + vector._z);
}
///
/// Point3D - Vector3D subtraction.
///
/// Point from which vector is being subtracted.
/// Vector being subtracted from the point.
/// Result of subtraction.
public static Point3D operator -(Point3D point, Vector3D vector)
{
return new Point3D(point._x - vector._x,
point._y - vector._y,
point._z - vector._z);
}
///
/// Point3D - Vector3D subtraction.
///
/// Point from which vector is being subtracted.
/// Vector being subtracted from the point.
/// Result of subtraction.
public static Point3D Subtract(Point3D point, Vector3D vector)
{
return new Point3D(point._x - vector._x,
point._y - vector._y,
point._z - vector._z);
}
///
/// Subtraction.
///
/// Point from which we are subtracting the second point.
/// Point being subtracted.
/// Vector between the two points.
public static Vector3D operator -(Point3D point1, Point3D point2)
{
return new Vector3D(point1._x - point2._x,
point1._y - point2._y,
point1._z - point2._z);
}
///
/// Subtraction.
///
/// Point from which we are subtracting the second point.
/// Point being subtracted.
/// Vector between the two points.
public static Vector3D Subtract(Point3D point1, Point3D point2)
{
Vector3D v = new Vector3D();
Subtract(ref point1, ref point2, out v);
return v;
}
///
/// Faster internal version of Subtract that avoids copies
///
/// p1 and p2 to a passed by ref for perf and ARE NOT MODIFIED
///
internal static void Subtract(ref Point3D p1, ref Point3D p2, out Vector3D result)
{
result._x = p1._x - p2._x;
result._y = p1._y - p2._y;
result._z = p1._z - p2._z;
}
///
/// Point3D * Matrix3D multiplication.
///
/// Point being transformed.
/// Transformation matrix applied to the point.
/// Result of the transformation matrix applied to the point.
public static Point3D operator *(Point3D point, Matrix3D matrix)
{
return matrix.Transform(point);
}
///
/// Point3D * Matrix3D multiplication.
///
/// Point being transformed.
/// Transformation matrix applied to the point.
/// Result of the transformation matrix applied to the point.
public static Point3D Multiply(Point3D point, Matrix3D matrix)
{
return matrix.Transform(point);
}
///
/// Explicit conversion to Vector3D.
///
/// Given point.
/// Vector representing the point.
public static explicit operator Vector3D(Point3D point)
{
return new Vector3D(point._x, point._y, point._z);
}
///
/// Explicit conversion to Point4D.
///
/// Given point.
/// 4D point representing the 3D point.
public static explicit operator Point4D(Point3D point)
{
return new Point4D(point._x, point._y, point._z, 1.0);
}
#endregion Public 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
- securitymgrsite.cs
- WindowsGrip.cs
- DirtyTextRange.cs
- Semaphore.cs
- ClientConvert.cs
- TailPinnedEventArgs.cs
- RootBuilder.cs
- TextSerializer.cs
- WebPartAddingEventArgs.cs
- Variable.cs
- RegexFCD.cs
- EDesignUtil.cs
- XsltOutput.cs
- ObjectSecurity.cs
- HtmlTitle.cs
- PopupControlService.cs
- ExpressionPrinter.cs
- SamlAdvice.cs
- SqlDataSourceCommandEventArgs.cs
- DnsPermission.cs
- CharKeyFrameCollection.cs
- TextElement.cs
- EventProviderBase.cs
- ScriptManagerProxy.cs
- TableRowsCollectionEditor.cs
- CollectionsUtil.cs
- FilterEventArgs.cs
- UnsafePeerToPeerMethods.cs
- DataGridViewColumnStateChangedEventArgs.cs
- Camera.cs
- CertificateElement.cs
- SqlConnectionPoolGroupProviderInfo.cs
- AppSettingsExpressionBuilder.cs
- CqlBlock.cs
- SpellerError.cs
- PasswordPropertyTextAttribute.cs
- StylusDownEventArgs.cs
- InputProcessorProfilesLoader.cs
- WebPartUserCapability.cs
- DataGridViewTopLeftHeaderCell.cs
- ConfigurationProperty.cs
- PngBitmapDecoder.cs
- TypeInitializationException.cs
- IPCCacheManager.cs
- FileAuthorizationModule.cs
- IgnoreSection.cs
- PagePropertiesChangingEventArgs.cs
- DoubleLink.cs
- ManipulationLogic.cs
- XmlQueryRuntime.cs
- AnnotationResourceCollection.cs
- CalloutQueueItem.cs
- XmlDictionary.cs
- PipelineComponent.cs
- Double.cs
- GuidTagList.cs
- EntityKeyElement.cs
- PingOptions.cs
- RegionInfo.cs
- FixedDocumentPaginator.cs
- CTreeGenerator.cs
- RulePatternOps.cs
- SoapSchemaImporter.cs
- FontUnitConverter.cs
- ClientProtocol.cs
- DeploymentSectionCache.cs
- MultiView.cs
- FormViewPagerRow.cs
- WrappedOptions.cs
- AccessedThroughPropertyAttribute.cs
- CommonServiceBehaviorElement.cs
- NotificationContext.cs
- FlowchartDesignerCommands.cs
- IndicFontClient.cs
- ModelItemDictionary.cs
- Listbox.cs
- SettingsBase.cs
- HwndMouseInputProvider.cs
- ActivationArguments.cs
- SourceLocationProvider.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- GridViewPageEventArgs.cs
- PointAnimationUsingPath.cs
- HttpModulesSection.cs
- PersonalizationProviderCollection.cs
- Registry.cs
- Rectangle.cs
- TableRowGroupCollection.cs
- CompilationPass2Task.cs
- WebOperationContext.cs
- SetterBaseCollection.cs
- BmpBitmapEncoder.cs
- SerialPinChanges.cs
- NativeCompoundFileAPIs.cs
- TraceContext.cs
- SafeArrayTypeMismatchException.cs
- ListBoxChrome.cs
- DbMetaDataColumnNames.cs
- XmlUTF8TextReader.cs
- SafeEventHandle.cs