This document is archived and information here might be outdated. Recommended version. |
ArcObjects Help for .NET developers > ArcObjects namespaces > Geometry > ESRI.ArcGIS.Geometry > Interfaces > IT > ITransform3D Interface > ITransform3D.Scale3D Method (ArcObjects .NET 10.5 SDK) |
Scales the object about the specified origin point. sx, sy, and sz are the scaling factors for the x, y, and z dimensions repectively.
[Visual Basic .NET] Public Sub Scale3D ( _ ByVal Origin As IPoint, _ ByVal sx As Double, _ ByVal sy As Double, _ ByVal sz As Double _ )
[C#] public void Scale3D ( IPoint Origin, double sx, double sy, double sz );
[C++]
HRESULT Scale3D(
IPoint* Origin,
double sx,
double sy,
double sz
);
[C++]
Parameters Origin
Origin is a parameter of type IPoint sx sx is a parameter of type double sy sy is a parameter of type double sz sz is a parameter of type double
public static void TransformMultiPatchGeometry()
{
const double XScale=2;
const double YScale=2;
const double ZScale=3;
//Transform3D: Cylinder Scaled Via Scale3D()
//Define Origin At Which Scale Operation Should Be Performed
IPoint originPoint=ConstructPoint3D(0, 0, 0);
MakeZAware(originPoint as IGeometry);
IGeometry geometry=GetMultiPatchGeometry();
ITransform3D transform3D=geometry as ITransform3D;
transform3D.Scale3D(originPoint, XScale, YScale, ZScale);
}
private static IPoint ConstructPoint3D(double x, double y, double z)
{
IPoint point=ConstructPoint2D(x, y);
point.Z=z;
MakeZAware(point as IGeometry);
return point;
}
private static IPoint ConstructPoint2D(double x, double y)
{
IPoint point=new PointClass();
point.PutCoords(x, y);
return point;
}
private static void MakeZAware(IGeometry geometry)
{
IZAware zAware=geometry as IZAware;
zAware.ZAware=true;
}