This document is archived and information here might be outdated. Recommended version. |
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;
}