This document is archived and information here might be outdated.  Recommended version.


ITransform3D.Scale3D Method (ArcObjects .NET 10.6 SDK)
ArcObjects Library Reference (Geometry)  

ITransform3D.Scale3D Method

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

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.
[C#]



        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;

        }



See Also

ITransform3D Interface

.NET Samples

3D multipatch examples (Code Files: Transform3DExamples)