MapGuide API Reference
 All Classes Functions Variables Enumerations Enumerator Friends
MgMultiCurveString Class Reference

An MgMultiCurveString is a one-dimensional aggregate geometry whose elements are MgCurveString geometries. More...

+ Inheritance diagram for MgMultiCurveString:

List of all members.

Public Member Functions

virtual MgGeometricEntityCopy ()
virtual INT32 GetCount ()
virtual MgCurveStringGetCurveString (INT32 index)
 
virtual INT32 GetDimension ()
 
virtual INT32 GetGeometryType ()
virtual bool IsClosed ()
virtual bool IsEmpty ()
 
virtual MgGeometricEntityTransform (MgTransform *transform)
 Returns a transformed copy of this geometric entity.

Detailed Description

An MgMultiCurveString is a one-dimensional aggregate geometry whose elements are MgCurveString geometries.

Remarks:
The curve strings are not connected or ordered. An instance of this class is constructed by calling a non-static MgGeometryFactory::CreateMultiCurveString() method and, once constructed, is immutable.
Example (PHP)
The following code shows the construction of an MgMultiCurveString geometry. Review the MgCurveString example code.

 // A helper class additional to those created in the
 // MgCurveString example code is needed.
 $curveStringCollection = new MgCurveStringCollection();

 // After each MgCurveString geometry is constructed,
 // it is added to an MgCurveStringCollection.
 $index = $curveStringCollection->Add($curveString);
 echo "A curve string is added to a curve string collection at index: $index\n";

 // construct the MgMultiCurveString geometry
 $multiCurveString = $geometryFactory->CreateMultiCurveString($curveStringCollection);

 // print out the Agf Text string for the geometry
 $multiCurveStringAgfText = $wktReaderWriter->Write($multiCurveString);
 echo "AGF Text representation of MultiCurveString: $multiCurveStringAgfText\n";
Example (C#)
The CreateAMultiCurveStringXY method calls the CreateACurveStringXY method. The code for the CreateACurveStringXY method is in the MgCurveString example code.

 using OSGeo.MapGuide;

 private MgWktReaderWriter wktReaderWriter;
 private MgMultiCurveString mcsCsAs001120Ls203132CsAs001120Ls203132;
 // the following arrays are used for segments of a curve string
 // the first coordinate in each array is actually a flag
 // 0 indicates an arc segment and 1 indicates a linear segment
 private double[,] as001120 = { { 0, 0 }, { 0, 0 }, { 1, 1 }, { 2, 0 } };
 private double[,] ls203132 = { { 1, 1 }, { 2, 0 }, { 3, 1 }, { 3, 2 } };
 private double[][,] csAs001120Ls203132Data;
 // the data for 2 curvestrings
 private double[][][,] mcsCsAs001120Ls203132CsAs001120Ls203132Data;
 private String geometryAgfText;

 public MgMultiCurveString CreateAMultiCurveStringXY(double[][][,] curveStrings)
 {
     MgCurveStringCollection curves = new MgCurveStringCollection();
     for (int i = 0; i < curveStrings.GetLength(0); i++)
     {
         curves.Add(CreateACurveStringXY(curveStrings[i]));
     }
     return geometryFactory.CreateMultiCurveString(curves);
 }

 csAs001120Ls203132Data = new double[2][,];
 csAs001120Ls203132Data[0] = as001120;
 csAs001120Ls203132Data[1] = ls203132;
 mcsCsAs001120Ls203132CsAs001120Ls203132Data = new double[2][][,];
 mcsCsAs001120Ls203132CsAs001120Ls203132Data[0] = csAs001120Ls203132Data;
 mcsCsAs001120Ls203132CsAs001120Ls203132Data[1] = csAs001120Ls203132Data;
 mcsCsAs001120Ls203132CsAs001120Ls203132 =
     CreateAMultiCurveStringXY(mcsCsAs001120Ls203132CsAs001120Ls203132Data);

 // print out the Agf Text string for the geometry
 wktReaderWriter = new MgWktReaderWriter();
 geometryAgfText = wktReaderWriter.Write(mcsCsAs001120Ls203132CsAs001120Ls203132);
 // geometryAgfText now contains the AGF representation of the multi-curve string