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)