sylvain.kerdreux

How to intersect 3D using multipatch

Discussion created by sylvain.kerdreux on Feb 6, 2012
Latest reply on Feb 8, 2012 by sylvain.kerdreux
Hello,

I do not find any documentation about how to intersect two multipatch in 3D.
Here my code to create both multipatch :

// first multipatch
IGeometryCollection multiPatchGeometryCollection = new MultiPatchClass();
IPointCollection triangleFanPointCollection = new TriangleFanClass();
triangleFanPointCollection.AddPoint(GeometryUtilities.ConstructPoint3D(596350, 4115350, 500), ref _missing, ref _missing);
triangleFanPointCollection.AddPoint(GeometryUtilities.ConstructPoint3D(596500, 4115500, 200), ref _missing, ref _missing);
triangleFanPointCollection.AddPoint(GeometryUtilities.ConstructPoint3D(596500, 4115200, 200), ref _missing, ref _missing);
triangleFanPointCollection.AddPoint(GeometryUtilities.ConstructPoint3D(596200, 4115200, 200), ref _missing, ref _missing);
triangleFanPointCollection.AddPoint(GeometryUtilities.ConstructPoint3D(596200, 4115500, 200), ref _missing, ref _missing);
triangleFanPointCollection.AddPoint(GeometryUtilities.ConstructPoint3D(596500, 4115500, 200), ref _missing, ref _missing);
multiPatchGeometryCollection.AddGeometry(triangleFanPointCollection as IGeometry, ref _missing, ref _missing);

// second multipatch
IGeometryCollection multiPatchGeometryCollectionSmall = new MultiPatchClass();
IPointCollection triangleFanPointCollectionSmall = new TriangleFanClass();
triangleFanPointCollectionSmall.AddPoint(GeometryUtilities.ConstructPoint3D(596350, 4115350, 300), ref _missing, ref _missing);
triangleFanPointCollectionSmall.AddPoint(GeometryUtilities.ConstructPoint3D(596500, 4115500, 200), ref _missing, ref _missing);
triangleFanPointCollectionSmall.AddPoint(GeometryUtilities.ConstructPoint3D(596500, 4115200, 200), ref _missing, ref _missing);
triangleFanPointCollectionSmall.AddPoint(GeometryUtilities.ConstructPoint3D(596200, 4115200, 200), ref _missing, ref _missing);
triangleFanPointCollectionSmall.AddPoint(GeometryUtilities.ConstructPoint3D(596200, 4115500, 200), ref _missing, ref _missing);
triangleFanPointCollectionSmall.AddPoint(GeometryUtilities.ConstructPoint3D(596500, 4115500, 200), ref _missing, ref _missing);
multiPatchGeometryCollectionSmall.AddGeometry(triangleFanPointCollectionSmall as IGeometry, ref _missing, ref _missing);

// cast en multipatch
IMultiPatch multipatch = multiPatchGeometryCollection as IMultiPatch;
IMultiPatch multipatchSmall = multiPatchGeometryCollectionSmall as IMultiPatch;


GeometryUtilities.ConstructPoint3D return an IPoint (first and second parameters as X,Y and last parameters as Z)

but now how can I intersect those two multipatch by code using arcobject?

Outcomes