프로젝트

일반

사용자정보

개정판 48a26489

ID48a26489ed5fda767ab7ac8128bf6e3b10eb5c9f
상위 74676ef3
하위 34221a64

조봉훈이(가) 약 2년 전에 추가함

Explode Nested Blocks.
Purge Blocks.
Extract Block Node Points
Export PNG
Export PDF

Change-Id: Ic19f9a6fea9248d2c9f89d0a4c4561960afa5085

차이점 보기:

DTI_PID/OdReadExMgd/OdReadExMgd.cs
25 25
using System.Text;
26 26
using System.IO;
27 27
using System.Xml;
28
using System.Linq;
28 29
using Teigha.DatabaseServices;
29 30
using Teigha.Geometry;
30 31
using Teigha.GraphicsInterface;
31 32
using Teigha.Colors;
32 33
using Teigha;
34
using Teigha.GraphicsSystem;
35
using Teigha.Runtime;
36
using Teigha.Export_Import;
37
using System.Collections.Specialized;
33 38
// note that GetObject doesn't work in Acad 2009, so we use "obsolete" Open instead
34 39
#pragma warning disable 618
35 40

  
......
365 370
                NameAttr.Value = pBlkRef.Name;
366 371
                BlockReferenceNode.Attributes.SetNamedItem(NameAttr);
367 372

  
373
                // BlockReference DBPoint
374
                string nodePointValue = string.Empty;
375
                Dictionary<long, Point3d> nodePointDic = new Dictionary<long, Point3d>();
376
                using (BlockTableRecord pBtr = (BlockTableRecord)pBlkRef.BlockTableRecord.Open(OpenMode.ForRead, false, true))
377
                {
378
                    foreach (ObjectId blkid in pBtr)
379
                    {
380
                        using (Entity pBlkEnt = (Entity)blkid.Open(OpenMode.ForRead, false, true))
381
                        {
382
                            if (pBlkEnt.GetRXClass().Name == "AcDbPoint")
383
                            {
384
                                DBPoint pt = (DBPoint)pBlkEnt;
385
                                Point3d nodePt = pt.Position.TransformBy(pBlkRef.BlockTransform);
386
                                if (nodePt == pBlkRef.Position)
387
                                {
388
                                    continue;
389
                                }
390

  
391
                                nodePointDic.Add(Convert.ToInt64(pt.Handle.ToString(), 16), nodePt);
392
                            }
393
                        }
394
                    }
395
                }
396
                if (nodePointDic.Count > 0)
397
                {
398
                    foreach (KeyValuePair<long, Point3d> item in nodePointDic.OrderBy(o => o.Key))
399
                    {
400
                        nodePointValue += item.Value.ToString() + "/";
401
                    }
402
                    nodePointValue = nodePointValue.Substring(0, nodePointValue.Length - 1);
403
                }
404

  
405
                XmlAttribute NodePointAttr = Program.xml.CreateAttribute("Nodes");
406
                NodePointAttr.Value = nodePointValue;
407
                BlockReferenceNode.Attributes.SetNamedItem(NodePointAttr);
408

  
368 409
                Matrix3d blockTransform = pBlkRef.BlockTransform;
369 410
                CoordinateSystem3d cs = blockTransform.CoordinateSystem3d;
370 411
                writeLine(indent + 1, "Origin", cs.Origin);
......
1163 1204

  
1164 1205
                node.AppendChild(EllipseNode);
1165 1206
            }
1166
    }
1207
        }
1167 1208

  
1168 1209
        /************************************************************************/
1169 1210
        /* Face Dumper                                                       */
......
1216 1257
        /************************************************************************/
1217 1258
        void dump(FeatureControlFrame pFcf, int indent)
1218 1259
        {
1219
          writeLine(indent++, pFcf.GetRXClass().Name, pFcf.Handle);
1220
          writeLine(indent, "Location", pFcf.Location);
1221
          writeLine(indent, "Text", pFcf.Text);
1222
          writeLine(indent, "Dimension Style", pFcf.DimensionStyleName);
1223
          writeLine(indent, "Dimension Gap", pFcf.Dimgap);
1224
          writeLine(indent, "Dimension Scale", pFcf.Dimscale);
1225
          writeLine(indent, "Text Height", pFcf.Dimtxt);
1226
          writeLine(indent, "Frame Color", pFcf.Dimclrd);
1227
          writeLine(indent, "Text Style", pFcf.TextStyleName);
1228
          writeLine(indent, "Text Color", pFcf.Dimclrd);
1229
          writeLine(indent, "X-Direction", pFcf.Direction);
1230
          writeLine(indent, "Normal", pFcf.Normal);
1231
          dumpEntityData(pFcf, indent, Program.xml.DocumentElement);
1260
            writeLine(indent++, pFcf.GetRXClass().Name, pFcf.Handle);
1261
            writeLine(indent, "Location", pFcf.Location);
1262
            writeLine(indent, "Text", pFcf.Text);
1263
            writeLine(indent, "Dimension Style", pFcf.DimensionStyleName);
1264
            writeLine(indent, "Dimension Gap", pFcf.Dimgap);
1265
            writeLine(indent, "Dimension Scale", pFcf.Dimscale);
1266
            writeLine(indent, "Text Height", pFcf.Dimtxt);
1267
            writeLine(indent, "Frame Color", pFcf.Dimclrd);
1268
            writeLine(indent, "Text Style", pFcf.TextStyleName);
1269
            writeLine(indent, "Text Color", pFcf.Dimclrd);
1270
            writeLine(indent, "X-Direction", pFcf.Direction);
1271
            writeLine(indent, "Normal", pFcf.Normal);
1272
            dumpEntityData(pFcf, indent, Program.xml.DocumentElement);
1232 1273
        }
1233 1274

  
1234 1275
        /************************************************************************/
......
1239 1280
        /***********************************************************************/
1240 1281
        static void dumpPolylineType(int loopIndex, Hatch pHatch, int indent)
1241 1282
        {
1242
          HatchLoop hl = pHatch.GetLoopAt(loopIndex);
1243
          for (int i = 0; i < hl.Polyline.Count; i++)
1244
          {
1245
            BulgeVertex bv = hl.Polyline[i];
1246
            writeLine(indent, "Vertex " + i.ToString(), bv.Vertex.ToString());
1247
            writeLine(indent + 1, "Bulge " + i.ToString(), bv.Bulge);
1248
            writeLine(indent + 1, "Bulge angle " + i.ToString(), toDegreeString(4 * Math.Atan(bv.Bulge)));
1249
          }
1283
            HatchLoop hl = pHatch.GetLoopAt(loopIndex);
1284
            for (int i = 0; i < hl.Polyline.Count; i++)
1285
            {
1286
                BulgeVertex bv = hl.Polyline[i];
1287
                writeLine(indent, "Vertex " + i.ToString(), bv.Vertex.ToString());
1288
                writeLine(indent + 1, "Bulge " + i.ToString(), bv.Bulge);
1289
                writeLine(indent + 1, "Bulge angle " + i.ToString(), toDegreeString(4 * Math.Atan(bv.Bulge)));
1290
            }
1250 1291
        }
1251 1292

  
1252 1293
        /**********************************************************************/
......
1254 1295
        /**********************************************************************/
1255 1296
        static void dumpCircularArcEdge(int indent, CircularArc2d pCircArc)
1256 1297
        {
1257
          writeLine(indent, "Center", pCircArc.Center);
1258
          writeLine(indent, "Radius", pCircArc.Radius);
1259
          writeLine(indent, "Start Angle", toDegreeString(pCircArc.StartAngle));
1260
          writeLine(indent, "End Angle", toDegreeString(pCircArc.EndAngle));
1261
          writeLine(indent, "Clockwise", pCircArc.IsClockWise);
1298
            writeLine(indent, "Center", pCircArc.Center);
1299
            writeLine(indent, "Radius", pCircArc.Radius);
1300
            writeLine(indent, "Start Angle", toDegreeString(pCircArc.StartAngle));
1301
            writeLine(indent, "End Angle", toDegreeString(pCircArc.EndAngle));
1302
            writeLine(indent, "Clockwise", pCircArc.IsClockWise);
1262 1303
        }
1263 1304

  
1264 1305
        /**********************************************************************/
......
1266 1307
        /**********************************************************************/
1267 1308
        static void dumpEllipticalArcEdge(int indent, EllipticalArc2d pEllipArc)
1268 1309
        {
1269
          writeLine(indent, "Center", pEllipArc.Center);
1270
          writeLine(indent, "Major Radius", pEllipArc.MajorRadius);
1271
          writeLine(indent, "Minor Radius", pEllipArc.MinorRadius);
1272
          writeLine(indent, "Major Axis", pEllipArc.MajorAxis);
1273
          writeLine(indent, "Minor Axis", pEllipArc.MinorAxis);
1274
          writeLine(indent, "Start Angle", toDegreeString(pEllipArc.StartAngle));
1275
          writeLine(indent, "End Angle", toDegreeString(pEllipArc.EndAngle));
1276
          writeLine(indent, "Clockwise", pEllipArc.IsClockWise);
1310
            writeLine(indent, "Center", pEllipArc.Center);
1311
            writeLine(indent, "Major Radius", pEllipArc.MajorRadius);
1312
            writeLine(indent, "Minor Radius", pEllipArc.MinorRadius);
1313
            writeLine(indent, "Major Axis", pEllipArc.MajorAxis);
1314
            writeLine(indent, "Minor Axis", pEllipArc.MinorAxis);
1315
            writeLine(indent, "Start Angle", toDegreeString(pEllipArc.StartAngle));
1316
            writeLine(indent, "End Angle", toDegreeString(pEllipArc.EndAngle));
1317
            writeLine(indent, "Clockwise", pEllipArc.IsClockWise);
1277 1318
        }
1278 1319

  
1279 1320
        /**********************************************************************/
......
1281 1322
        /**********************************************************************/
1282 1323
        static void dumpNurbCurveEdge(int indent, NurbCurve2d pNurbCurve)
1283 1324
        {
1284
          NurbCurve2dData d = pNurbCurve.DefinitionData;
1285
          writeLine(indent, "Degree", d.Degree);
1286
          writeLine(indent, "Rational", d.Rational);
1287
          writeLine(indent, "Periodic", d.Periodic);
1288

  
1289
          writeLine(indent, "Number of Control Points", d.ControlPoints.Count);
1290
          for (int i = 0; i < d.ControlPoints.Count; i++)
1291
          {
1292
            writeLine(indent, "Control Point " + i.ToString(), d.ControlPoints[i]);
1293
          }
1294
          writeLine(indent, "Number of Knots", d.Knots.Count);
1295
          for (int i = 0; i < d.Knots.Count; i++)
1296
          {
1297
            writeLine(indent, "Knot " + i.ToString(), d.Knots[i]);
1298
          }
1299

  
1300
          if (d.Rational)
1301
          {
1302
            writeLine(indent, "Number of Weights", d.Weights.Count);
1303
            for (int i = 0; i < d.Weights.Count; i++)
1304
            {
1305
              writeLine(indent, "Weight " + i.ToString(), d.Weights[i]);
1306
            }
1307
          }
1325
            NurbCurve2dData d = pNurbCurve.DefinitionData;
1326
            writeLine(indent, "Degree", d.Degree);
1327
            writeLine(indent, "Rational", d.Rational);
1328
            writeLine(indent, "Periodic", d.Periodic);
1329

  
1330
            writeLine(indent, "Number of Control Points", d.ControlPoints.Count);
1331
            for (int i = 0; i < d.ControlPoints.Count; i++)
1332
            {
1333
                writeLine(indent, "Control Point " + i.ToString(), d.ControlPoints[i]);
1334
            }
1335
            writeLine(indent, "Number of Knots", d.Knots.Count);
1336
            for (int i = 0; i < d.Knots.Count; i++)
1337
            {
1338
                writeLine(indent, "Knot " + i.ToString(), d.Knots[i]);
1339
            }
1340

  
1341
            if (d.Rational)
1342
            {
1343
                writeLine(indent, "Number of Weights", d.Weights.Count);
1344
                for (int i = 0; i < d.Weights.Count; i++)
1345
                {
1346
                    writeLine(indent, "Weight " + i.ToString(), d.Weights[i]);
1347
                }
1348
            }
1308 1349
        }
1309 1350

  
1310 1351
        /***********************************************************************/
......
1312 1353
        /***********************************************************************/
1313 1354
        static void dumpEdgesType(int loopIndex, Hatch pHatch, int indent)
1314 1355
        {
1315
          Curve2dCollection edges = pHatch.GetLoopAt(loopIndex).Curves;
1316
          for (int i = 0; i < (int)edges.Count; i++)
1317
          {
1318
            using (Curve2d pEdge = edges[i])
1319
            {
1320
              writeLine(indent, string.Format("Edge {0}", i), pEdge.GetType().Name);
1321
              switch (pEdge.GetType().Name)
1322
              {
1323
                case "LineSegment2d":
1324
                  break;
1325
                case "CircularArc2d":
1326
                  dumpCircularArcEdge(indent + 1, (CircularArc2d)pEdge);
1327
                  break;
1328
                case "EllipticalArc2d":
1329
                  dumpEllipticalArcEdge(indent + 1, (EllipticalArc2d)pEdge);
1330
                  break;
1331
                case "NurbCurve2d":
1332
                  dumpNurbCurveEdge(indent + 1, (NurbCurve2d)pEdge);
1333
                  break;
1334
              }
1335

  
1336
              /******************************************************************/
1337
              /* Common Edge Properties                                         */
1338
              /******************************************************************/
1339
              Interval interval = pEdge.GetInterval();
1340
              writeLine(indent + 1, "Start Point", pEdge.EvaluatePoint(interval.LowerBound));
1341
              writeLine(indent + 1, "End Point", pEdge.EvaluatePoint(interval.UpperBound));
1342
              writeLine(indent + 1, "Closed", pEdge.IsClosed());
1343
            }
1344
          }
1356
            Curve2dCollection edges = pHatch.GetLoopAt(loopIndex).Curves;
1357
            for (int i = 0; i < (int)edges.Count; i++)
1358
            {
1359
                using (Curve2d pEdge = edges[i])
1360
                {
1361
                    writeLine(indent, string.Format("Edge {0}", i), pEdge.GetType().Name);
1362
                    switch (pEdge.GetType().Name)
1363
                    {
1364
                        case "LineSegment2d":
1365
                            break;
1366
                        case "CircularArc2d":
1367
                            dumpCircularArcEdge(indent + 1, (CircularArc2d)pEdge);
1368
                            break;
1369
                        case "EllipticalArc2d":
1370
                            dumpEllipticalArcEdge(indent + 1, (EllipticalArc2d)pEdge);
1371
                            break;
1372
                        case "NurbCurve2d":
1373
                            dumpNurbCurveEdge(indent + 1, (NurbCurve2d)pEdge);
1374
                            break;
1375
                    }
1376

  
1377
                    /******************************************************************/
1378
                    /* Common Edge Properties                                         */
1379
                    /******************************************************************/
1380
                    Interval interval = pEdge.GetInterval();
1381
                    writeLine(indent + 1, "Start Point", pEdge.EvaluatePoint(interval.LowerBound));
1382
                    writeLine(indent + 1, "End Point", pEdge.EvaluatePoint(interval.UpperBound));
1383
                    writeLine(indent + 1, "Closed", pEdge.IsClosed());
1384
                }
1385
            }
1345 1386
        }
1346 1387

  
1347 1388
        /************************************************************************/
......
1349 1390
        /************************************************************************/
1350 1391
        string toLooptypeString(HatchLoopTypes loopType)
1351 1392
        {
1352
          string retVal = "";
1353
          if ((loopType & HatchLoopTypes.External) != 0)
1354
            retVal = retVal + " | kExternal";
1393
            string retVal = "";
1394
            if ((loopType & HatchLoopTypes.External) != 0)
1395
                retVal = retVal + " | kExternal";
1355 1396

  
1356
          if ((loopType & HatchLoopTypes.Polyline) != 0)
1357
            retVal = retVal + " | kPolyline";
1397
            if ((loopType & HatchLoopTypes.Polyline) != 0)
1398
                retVal = retVal + " | kPolyline";
1358 1399

  
1359
          if ((loopType & HatchLoopTypes.Derived) != 0)
1360
            retVal = retVal + " | kDerived";
1400
            if ((loopType & HatchLoopTypes.Derived) != 0)
1401
                retVal = retVal + " | kDerived";
1361 1402

  
1362
          if ((loopType & HatchLoopTypes.Textbox) != 0)
1363
            retVal = retVal + " | kTextbox";
1403
            if ((loopType & HatchLoopTypes.Textbox) != 0)
1404
                retVal = retVal + " | kTextbox";
1364 1405

  
1365
          if ((loopType & HatchLoopTypes.Outermost) != 0)
1366
            retVal = retVal + " | kOutermost";
1406
            if ((loopType & HatchLoopTypes.Outermost) != 0)
1407
                retVal = retVal + " | kOutermost";
1367 1408

  
1368
          if ((loopType & HatchLoopTypes.NotClosed) != 0)
1369
            retVal = retVal + " | kNotClosed";
1409
            if ((loopType & HatchLoopTypes.NotClosed) != 0)
1410
                retVal = retVal + " | kNotClosed";
1370 1411

  
1371
          if ((loopType & HatchLoopTypes.SelfIntersecting) != 0)
1372
            retVal = retVal + " | kSelfIntersecting";
1412
            if ((loopType & HatchLoopTypes.SelfIntersecting) != 0)
1413
                retVal = retVal + " | kSelfIntersecting";
1373 1414

  
1374
          if ((loopType & HatchLoopTypes.TextIsland) != 0)
1375
            retVal = retVal + " | kTextIsland";
1415
            if ((loopType & HatchLoopTypes.TextIsland) != 0)
1416
                retVal = retVal + " | kTextIsland";
1376 1417

  
1377
          if ((loopType & HatchLoopTypes.Duplicate) != 0)
1378
            retVal = retVal + " | kDuplicate";
1418
            if ((loopType & HatchLoopTypes.Duplicate) != 0)
1419
                retVal = retVal + " | kDuplicate";
1379 1420

  
1380
          return retVal == "" ? "kDefault" : retVal.Substring(3);
1421
            return retVal == "" ? "kDefault" : retVal.Substring(3);
1381 1422
        }
1382 1423

  
1383 1424
        void dump(Hatch pHatch, int indent)
1384 1425
        {
1385
          writeLine(indent++, pHatch.GetRXClass().Name, pHatch.Handle);
1386
          writeLine(indent, "Hatch Style", pHatch.HatchStyle);
1387
          writeLine(indent, "Hatch Object Type", pHatch.HatchObjectType);
1388
          writeLine(indent, "Is Hatch", pHatch.IsHatch);
1389
          writeLine(indent, "Is Gradient", !pHatch.IsGradient);
1390
          if (pHatch.IsHatch)
1391
          {
1392
            /******************************************************************/
1393
            /* Dump Hatch Parameters                                          */
1394
            /******************************************************************/
1395
            writeLine(indent, "Pattern Type", pHatch.PatternType);
1396
            switch (pHatch.PatternType)
1397
            {
1398
              case HatchPatternType.PreDefined:
1399
              case HatchPatternType.CustomDefined:
1400
                writeLine(indent, "Pattern Name", pHatch.PatternName);
1401
                writeLine(indent, "Solid Fill", pHatch.IsSolidFill);
1402
                if (!pHatch.IsSolidFill)
1426
            writeLine(indent++, pHatch.GetRXClass().Name, pHatch.Handle);
1427
            writeLine(indent, "Hatch Style", pHatch.HatchStyle);
1428
            writeLine(indent, "Hatch Object Type", pHatch.HatchObjectType);
1429
            writeLine(indent, "Is Hatch", pHatch.IsHatch);
1430
            writeLine(indent, "Is Gradient", !pHatch.IsGradient);
1431
            if (pHatch.IsHatch)
1432
            {
1433
                /******************************************************************/
1434
                /* Dump Hatch Parameters                                          */
1435
                /******************************************************************/
1436
                writeLine(indent, "Pattern Type", pHatch.PatternType);
1437
                switch (pHatch.PatternType)
1438
                {
1439
                    case HatchPatternType.PreDefined:
1440
                    case HatchPatternType.CustomDefined:
1441
                        writeLine(indent, "Pattern Name", pHatch.PatternName);
1442
                        writeLine(indent, "Solid Fill", pHatch.IsSolidFill);
1443
                        if (!pHatch.IsSolidFill)
1444
                        {
1445
                            writeLine(indent, "Pattern Angle", toDegreeString(pHatch.PatternAngle));
1446
                            writeLine(indent, "Pattern Scale", pHatch.PatternScale);
1447
                        }
1448
                        break;
1449
                    case HatchPatternType.UserDefined:
1450
                        writeLine(indent, "Pattern Angle", toDegreeString(pHatch.PatternAngle));
1451
                        writeLine(indent, "Pattern Double", pHatch.PatternDouble);
1452
                        writeLine(indent, "Pattern Space", pHatch.PatternSpace);
1453
                        break;
1454
                }
1455
                DBObjectCollection entitySet = new DBObjectCollection();
1456
                Handle hhh = pHatch.Handle;
1457
                if (hhh.Value == 1692) //69C)
1458
                {
1459
                    pHatch.Explode(entitySet);
1460
                    return;
1461
                }
1462
                if (hhh.Value == 1693) //69D)
1463
                {
1464
                    try
1465
                    {
1466
                        pHatch.Explode(entitySet);
1467
                    }
1468
                    catch (System.Exception e)
1469
                    {
1470
                        if (e.Message == "eCannotExplodeEntity")
1471
                        {
1472
                            writeLine(indent, "Hatch " + e.Message + ": ", pHatch.Handle);
1473
                            return;
1474
                        }
1475
                    }
1476
                }
1477
            }
1478
            if (pHatch.IsGradient)
1479
            {
1480
                /******************************************************************/
1481
                /* Dump Gradient Parameters                                       */
1482
                /******************************************************************/
1483
                writeLine(indent, "Gradient Type", pHatch.GradientType);
1484
                writeLine(indent, "Gradient Name", pHatch.GradientName);
1485
                writeLine(indent, "Gradient Angle", toDegreeString(pHatch.GradientAngle));
1486
                writeLine(indent, "Gradient Shift", pHatch.GradientShift);
1487
                writeLine(indent, "Gradient One-Color Mode", pHatch.GradientOneColorMode);
1488
                if (pHatch.GradientOneColorMode)
1403 1489
                {
1404
                  writeLine(indent, "Pattern Angle", toDegreeString(pHatch.PatternAngle));
1405
                  writeLine(indent, "Pattern Scale", pHatch.PatternScale);
1490
                    writeLine(indent, "ShadeTintValue", pHatch.ShadeTintValue);
1406 1491
                }
1407
                break;
1408
              case HatchPatternType.UserDefined:
1409
                writeLine(indent, "Pattern Angle", toDegreeString(pHatch.PatternAngle));
1410
                writeLine(indent, "Pattern Double", pHatch.PatternDouble);
1411
                writeLine(indent, "Pattern Space", pHatch.PatternSpace);
1412
                break;
1413
            }
1414
            DBObjectCollection entitySet = new DBObjectCollection();
1415
            Handle hhh = pHatch.Handle;
1416
            if (hhh.Value == 1692) //69C)
1417
            {
1418
              pHatch.Explode(entitySet);
1419
              return;
1420
            }
1421
            if (hhh.Value == 1693) //69D)
1422
            {
1423
              try
1424
              {
1425
                pHatch.Explode(entitySet);
1426
              }
1427
              catch (System.Exception e)
1428
              {
1429
                if (e.Message == "eCannotExplodeEntity")
1492
                GradientColor[] colors = pHatch.GetGradientColors();
1493
                for (int i = 0; i < colors.Length; i++)
1430 1494
                {
1431
                  writeLine(indent, "Hatch " + e.Message + ": ", pHatch.Handle);
1432
                  return;
1495
                    writeLine(indent, string.Format("Color         {0}", i), colors[i].get_Color());
1496
                    writeLine(indent, string.Format("Interpolation {0}", i), colors[i].get_Value());
1433 1497
                }
1434
              }
1435
            }
1436
          }
1437
          if (pHatch.IsGradient)
1438
          {
1439
            /******************************************************************/
1440
            /* Dump Gradient Parameters                                       */
1441
            /******************************************************************/
1442
            writeLine(indent, "Gradient Type", pHatch.GradientType);
1443
            writeLine(indent, "Gradient Name", pHatch.GradientName);
1444
            writeLine(indent, "Gradient Angle", toDegreeString(pHatch.GradientAngle));
1445
            writeLine(indent, "Gradient Shift", pHatch.GradientShift);
1446
            writeLine(indent, "Gradient One-Color Mode", pHatch.GradientOneColorMode);
1447
            if (pHatch.GradientOneColorMode)
1448
            {
1449
              writeLine(indent, "ShadeTintValue", pHatch.ShadeTintValue);
1450
            }
1451
            GradientColor[] colors = pHatch.GetGradientColors();
1452
            for (int i = 0; i < colors.Length; i++)
1453
            {
1454
              writeLine(indent, string.Format("Color         {0}", i), colors[i].get_Color());
1455
              writeLine(indent, string.Format("Interpolation {0}", i), colors[i].get_Value());
1456
            }
1457
          }
1458

  
1459
          /********************************************************************/
1460
          /* Dump Associated Objects                                          */
1461
          /********************************************************************/
1462
          writeLine(indent, "Associated objects", pHatch.Associative);
1463
          foreach (ObjectId id in pHatch.GetAssociatedObjectIds())
1464
          {
1465
            writeLine(indent + 1, id.ObjectClass.Name, id.Handle);
1466
          }
1467

  
1468
          /********************************************************************/
1469
          /* Dump Loops                                                       */
1470
          /********************************************************************/
1471
          writeLine(indent, "Loops", pHatch.NumberOfLoops);
1472
          for (int i = 0; i < pHatch.NumberOfLoops; i++)
1473
          {
1474
            writeLine(indent + 1, "Loop " + i.ToString(), toLooptypeString(pHatch.LoopTypeAt(i)));
1475

  
1476
            /******************************************************************/
1477
            /* Dump Loop                                                      */
1478
            /******************************************************************/
1479
            if ((pHatch.LoopTypeAt(i) & HatchLoopTypes.Polyline) != 0)
1480
            {
1481
              dumpPolylineType(i, pHatch, indent + 2);
1482 1498
            }
1483
            else
1499

  
1500
            /********************************************************************/
1501
            /* Dump Associated Objects                                          */
1502
            /********************************************************************/
1503
            writeLine(indent, "Associated objects", pHatch.Associative);
1504
            foreach (ObjectId id in pHatch.GetAssociatedObjectIds())
1484 1505
            {
1485
              dumpEdgesType(i, pHatch, indent + 2);
1506
                writeLine(indent + 1, id.ObjectClass.Name, id.Handle);
1486 1507
            }
1487
            /******************************************************************/
1488
            /* Dump Associated Objects                                        */
1489
            /******************************************************************/
1490
            if (pHatch.Associative)
1508

  
1509
            /********************************************************************/
1510
            /* Dump Loops                                                       */
1511
            /********************************************************************/
1512
            writeLine(indent, "Loops", pHatch.NumberOfLoops);
1513
            for (int i = 0; i < pHatch.NumberOfLoops; i++)
1491 1514
            {
1492
              writeLine(indent + 2, "Associated objects");
1493
              foreach (ObjectId id in pHatch.GetAssociatedObjectIdsAt(i))
1494
              {
1495
                writeLine(indent + 3, id.ObjectClass.Name, id.Handle);
1496
              }
1515
                writeLine(indent + 1, "Loop " + i.ToString(), toLooptypeString(pHatch.LoopTypeAt(i)));
1516

  
1517
                /******************************************************************/
1518
                /* Dump Loop                                                      */
1519
                /******************************************************************/
1520
                if ((pHatch.LoopTypeAt(i) & HatchLoopTypes.Polyline) != 0)
1521
                {
1522
                    dumpPolylineType(i, pHatch, indent + 2);
1523
                }
1524
                else
1525
                {
1526
                    dumpEdgesType(i, pHatch, indent + 2);
1527
                }
1528
                /******************************************************************/
1529
                /* Dump Associated Objects                                        */
1530
                /******************************************************************/
1531
                if (pHatch.Associative)
1532
                {
1533
                    writeLine(indent + 2, "Associated objects");
1534
                    foreach (ObjectId id in pHatch.GetAssociatedObjectIdsAt(i))
1535
                    {
1536
                        writeLine(indent + 3, id.ObjectClass.Name, id.Handle);
1537
                    }
1538
                }
1497 1539
            }
1498
          }
1499 1540

  
1500
          writeLine(indent, "Elevation", pHatch.Elevation);
1501
          writeLine(indent, "Normal", pHatch.Normal);
1502
          dumpEntityData(pHatch, indent, Program.xml.DocumentElement);
1541
            writeLine(indent, "Elevation", pHatch.Elevation);
1542
            writeLine(indent, "Normal", pHatch.Normal);
1543
            dumpEntityData(pHatch, indent, Program.xml.DocumentElement);
1503 1544
        }
1504 1545

  
1505 1546
        /************************************************************************/
......
1507 1548
        /************************************************************************/
1508 1549
        void dump(Leader pLeader, int indent)
1509 1550
        {
1510
          writeLine(indent++, pLeader.GetRXClass().Name, pLeader.Handle);
1511
          writeLine(indent, "Dimension Style", pLeader.DimensionStyleName);
1512

  
1513
          writeLine(indent, "Annotation");
1514
          if (!pLeader.Annotation.IsNull)
1515
          {
1516
            writeLine(indent++, pLeader.Annotation.ObjectClass.Name, pLeader.Annotation.Handle);
1517
          }
1518
          writeLine(indent + 1, "Type", pLeader.AnnoType);
1519
          writeLine(indent + 1, "Height", pLeader.AnnoHeight);
1520
          writeLine(indent + 1, "Width", pLeader.AnnoWidth);
1521
          writeLine(indent + 1, "Offset", pLeader.AnnotationOffset);
1522
          writeLine(indent, "Has Arrowhead", pLeader.HasArrowHead);
1523
          writeLine(indent, "Has Hook Line", pLeader.HasHookLine);
1524
          writeLine(indent, "Splined", pLeader.IsSplined);
1525

  
1526
          for (int i = 0; i < pLeader.NumVertices; i++)
1527
          {
1528
            writeLine(indent, string.Format("Vertex {0}", i), pLeader.VertexAt(i));
1529
          }
1530
          writeLine(indent, "Normal", pLeader.Normal);
1531
          dumpCurveData(pLeader, indent, Program.xml.DocumentElement);
1551
            writeLine(indent++, pLeader.GetRXClass().Name, pLeader.Handle);
1552
            writeLine(indent, "Dimension Style", pLeader.DimensionStyleName);
1553

  
1554
            writeLine(indent, "Annotation");
1555
            if (!pLeader.Annotation.IsNull)
1556
            {
1557
                writeLine(indent++, pLeader.Annotation.ObjectClass.Name, pLeader.Annotation.Handle);
1558
            }
1559
            writeLine(indent + 1, "Type", pLeader.AnnoType);
1560
            writeLine(indent + 1, "Height", pLeader.AnnoHeight);
1561
            writeLine(indent + 1, "Width", pLeader.AnnoWidth);
1562
            writeLine(indent + 1, "Offset", pLeader.AnnotationOffset);
1563
            writeLine(indent, "Has Arrowhead", pLeader.HasArrowHead);
1564
            writeLine(indent, "Has Hook Line", pLeader.HasHookLine);
1565
            writeLine(indent, "Splined", pLeader.IsSplined);
1566

  
1567
            for (int i = 0; i < pLeader.NumVertices; i++)
1568
            {
1569
                writeLine(indent, string.Format("Vertex {0}", i), pLeader.VertexAt(i));
1570
            }
1571
            writeLine(indent, "Normal", pLeader.Normal);
1572
            dumpCurveData(pLeader, indent, Program.xml.DocumentElement);
1532 1573
        }
1533 1574

  
1534 1575
        /************************************************************************/
......
1602 1643
        /************************************************************************/
1603 1644
        void dump(MInsertBlock pMInsert, int indent, XmlNode node)
1604 1645
        {
1605
          writeLine(indent++, pMInsert.GetRXClass().Name, pMInsert.Handle);
1646
            writeLine(indent++, pMInsert.GetRXClass().Name, pMInsert.Handle);
1606 1647

  
1607
          using (BlockTableRecord pRecord = (BlockTableRecord)pMInsert.BlockTableRecord.Open(OpenMode.ForRead))
1608
          {
1648
            using (BlockTableRecord pRecord = (BlockTableRecord)pMInsert.BlockTableRecord.Open(OpenMode.ForRead))
1649
            {
1609 1650
                writeLine(indent, "Name", pRecord.Name);
1610 1651
                writeLine(indent, "Rows", pMInsert.Rows);
1611 1652
                writeLine(indent, "Columns", pMInsert.Columns);
1612 1653
                writeLine(indent, "Row Spacing", pMInsert.RowSpacing);
1613 1654
                writeLine(indent, "Column Spacing", pMInsert.ColumnSpacing);
1614 1655
                dumpBlockRefData(pMInsert, indent, node);
1615
          }
1656
            }
1616 1657
        }
1617 1658

  
1618 1659
        /************************************************************************/
......
1620 1661
        /************************************************************************/
1621 1662
        void dump(Mline pMline, int indent)
1622 1663
        {
1623
          writeLine(indent++, pMline.GetRXClass().Name, pMline.Handle);
1624
          writeLine(indent, "Style", pMline.Style);
1625
          writeLine(indent, "Closed", pMline.IsClosed);
1626
          writeLine(indent, "Scale", pMline.Scale);
1627
          writeLine(indent, "Suppress Start Caps", pMline.SupressStartCaps);
1628
          writeLine(indent, "Suppress End Caps", pMline.SupressEndCaps);
1629
          writeLine(indent, "Normal", pMline.Normal);
1630

  
1631
          /********************************************************************/
1632
          /* Dump the segment data                                            */
1633
          /********************************************************************/
1634
          for (int i = 0; i < pMline.NumberOfVertices; i++)
1635
          {
1636
            writeLine(indent, "Segment", i);
1637
            writeLine(indent + 1, "Vertex", pMline.VertexAt(i));
1638
          }
1639
          dumpEntityData(pMline, indent, Program.xml.DocumentElement);
1664
            writeLine(indent++, pMline.GetRXClass().Name, pMline.Handle);
1665
            writeLine(indent, "Style", pMline.Style);
1666
            writeLine(indent, "Closed", pMline.IsClosed);
1667
            writeLine(indent, "Scale", pMline.Scale);
1668
            writeLine(indent, "Suppress Start Caps", pMline.SupressStartCaps);
1669
            writeLine(indent, "Suppress End Caps", pMline.SupressEndCaps);
1670
            writeLine(indent, "Normal", pMline.Normal);
1671

  
1672
            /********************************************************************/
1673
            /* Dump the segment data                                            */
1674
            /********************************************************************/
1675
            for (int i = 0; i < pMline.NumberOfVertices; i++)
1676
            {
1677
                writeLine(indent, "Segment", i);
1678
                writeLine(indent + 1, "Vertex", pMline.VertexAt(i));
1679
            }
1680
            dumpEntityData(pMline, indent, Program.xml.DocumentElement);
1640 1681
        }
1641 1682

  
1642 1683
        /************************************************************************/
......
1652 1693
        {
1653 1694
            DBObjectCollection objColl = new DBObjectCollection();
1654 1695
            pMText.Explode(objColl);
1655
            foreach(var obj in objColl)
1696
            foreach (var obj in objColl)
1656 1697
            {
1657 1698
                dumpTextData(obj as DBText, indent, node);
1658 1699
            }
......
1792 1833
        /************************************************************************/
1793 1834
        void dump(Ole2Frame pOle, int indent)
1794 1835
        {
1795
          writeLine(indent++, pOle.GetRXClass().Name, pOle.Handle);
1796

  
1797
          Rectangle3d pos = (Rectangle3d)pOle.Position3d;
1798
          writeLine(indent, "Lower Left", pos.LowerLeft);
1799
          writeLine(indent, "Lower Right", pos.LowerRight);
1800
          writeLine(indent, "Upper Left", pos.UpperLeft);
1801
          writeLine(indent, "Upper Right", pos.UpperRight);
1802
          writeLine(indent, "Type", pOle.Type);
1803
          writeLine(indent, "User Type", pOle.UserType);
1804
          if (pOle.Type == Ole2Frame.ItemType.Link)
1805
          {
1806
            writeLine(indent, "Link Name", pOle.LinkName);
1807
            writeLine(indent, "Link Path", pOle.LinkPath);
1808
          }
1809
          writeLine(indent, "Output Quality", pOle.OutputQuality);
1810
          dumpEntityData(pOle, indent, Program.xml.DocumentElement);
1836
            writeLine(indent++, pOle.GetRXClass().Name, pOle.Handle);
1837

  
1838
            Rectangle3d pos = (Rectangle3d)pOle.Position3d;
1839
            writeLine(indent, "Lower Left", pos.LowerLeft);
1840
            writeLine(indent, "Lower Right", pos.LowerRight);
1841
            writeLine(indent, "Upper Left", pos.UpperLeft);
1842
            writeLine(indent, "Upper Right", pos.UpperRight);
1843
            writeLine(indent, "Type", pOle.Type);
1844
            writeLine(indent, "User Type", pOle.UserType);
1845
            if (pOle.Type == Ole2Frame.ItemType.Link)
1846
            {
1847
                writeLine(indent, "Link Name", pOle.LinkName);
1848
                writeLine(indent, "Link Path", pOle.LinkPath);
1849
            }
1850
            writeLine(indent, "Output Quality", pOle.OutputQuality);
1851
            dumpEntityData(pOle, indent, Program.xml.DocumentElement);
1811 1852
        }
1812 1853

  
1813 1854
        /************************************************************************/
......
1815 1856
        /************************************************************************/
1816 1857
        void dump(DBPoint pPoint, int indent)
1817 1858
        {
1818
          writeLine(indent++, pPoint.GetRXClass().Name, pPoint.Handle);
1819
          writeLine(indent, "Position", pPoint.Position);
1820
          writeLine(indent, "ECS Rotation", toDegreeString(pPoint.EcsRotation));
1821
          writeLine(indent, "Normal", pPoint.Normal);
1822
          writeLine(indent, "Thickness", pPoint.Thickness);
1823
          dumpEntityData(pPoint, indent, Program.xml.DocumentElement);
1859
            writeLine(indent++, pPoint.GetRXClass().Name, pPoint.Handle);
1860
            writeLine(indent, "Position", pPoint.Position);
1861
            writeLine(indent, "ECS Rotation", toDegreeString(pPoint.EcsRotation));
1862
            writeLine(indent, "Normal", pPoint.Normal);
1863
            writeLine(indent, "Thickness", pPoint.Thickness);
1864
            dumpEntityData(pPoint, indent, Program.xml.DocumentElement);
1824 1865
        }
1825 1866

  
1826 1867
        /************************************************************************/
......
1828 1869
        /************************************************************************/
1829 1870
        void dump(PolygonMesh pPoly, int indent)
1830 1871
        {
1831
          writeLine(indent++, pPoly.GetRXClass().Name, pPoly.Handle);
1832
          writeLine(indent, "m Size", pPoly.MSize);
1833
          writeLine(indent, "m-Closed", pPoly.IsMClosed);
1834
          writeLine(indent, "m Surface Density", pPoly.MSurfaceDensity);
1835
          writeLine(indent, "n Size", pPoly.NSize);
1836
          writeLine(indent, "n-Closed", pPoly.IsNClosed);
1837
          writeLine(indent, "n Surface Density", pPoly.NSurfaceDensity);
1838
          /********************************************************************/
1839
          /* dump vertices                                                    */
1840
          /********************************************************************/
1841
          int vertexCount = 0;
1842
          foreach (object o in pPoly)
1843
          {
1844
            PolygonMeshVertex pVertex = o as PolygonMeshVertex;
1845
            if (pVertex != null)
1846
            {
1847
              writeLine(indent, pVertex.GetRXClass().Name, vertexCount++);
1848
              writeLine(indent + 1, "Handle", pVertex.Handle);
1849
              writeLine(indent + 1, "Position", pVertex.Position);
1850
              writeLine(indent + 1, "Type", pVertex.VertexType);
1851
            }
1852
          }
1853
          dumpEntityData(pPoly, indent, Program.xml.DocumentElement);
1872
            writeLine(indent++, pPoly.GetRXClass().Name, pPoly.Handle);
1873
            writeLine(indent, "m Size", pPoly.MSize);
1874
            writeLine(indent, "m-Closed", pPoly.IsMClosed);
1875
            writeLine(indent, "m Surface Density", pPoly.MSurfaceDensity);
1876
            writeLine(indent, "n Size", pPoly.NSize);
1877
            writeLine(indent, "n-Closed", pPoly.IsNClosed);
1878
            writeLine(indent, "n Surface Density", pPoly.NSurfaceDensity);
1879
            /********************************************************************/
1880
            /* dump vertices                                                    */
1881
            /********************************************************************/
1882
            int vertexCount = 0;
1883
            foreach (object o in pPoly)
1884
            {
1885
                PolygonMeshVertex pVertex = o as PolygonMeshVertex;
1886
                if (pVertex != null)
1887
                {
1888
                    writeLine(indent, pVertex.GetRXClass().Name, vertexCount++);
1889
                    writeLine(indent + 1, "Handle", pVertex.Handle);
1890
                    writeLine(indent + 1, "Position", pVertex.Position);
1891
                    writeLine(indent + 1, "Type", pVertex.VertexType);
1892
                }
1893
            }
1894
            dumpEntityData(pPoly, indent, Program.xml.DocumentElement);
1854 1895
        }
1855 1896

  
1856 1897
        /************************************************************************/
......
1946 1987
            }
1947 1988
        }
1948 1989

  
1949
    class DrawContextDumper : Context
1950
    {
1951
      Database _db;
1952
      public DrawContextDumper(Database db)
1953
      {
1954
        _db = db;
1955
      }
1956
      public override Database Database
1957
      {
1958
        get { return _db; }
1959
      }
1960
      public override bool IsBoundaryClipping
1961
      {
1962
        get { return false; }
1963
      }
1964
      public override bool IsPlotGeneration
1965
      {
1966
        get { return false; }
1967
      }
1968
      public override bool IsPostScriptOut
1969
      {
1970
        get { return false; }
1971
      }
1972
    }
1973
    class SubEntityTraitsDumper : SubEntityTraits
1974
    {
1975
      short _color;
1976
      int _drawFlags;
1977
      FillType _ft;
1978
      ObjectId _layer;
1979
      ObjectId _linetype;
1980
      LineWeight _lineWeight;
1981
      Mapper _mapper;
1982
      double _lineTypeScale;
1983
      ObjectId _material;
1984
      PlotStyleDescriptor _plotStyleDescriptor;
1985
      bool _sectionable;
1986
      bool _selectionOnlyGeometry;
1987
      ShadowFlags _shadowFlags;
1988
      double _thickness;
1989
      EntityColor _trueColor;
1990
      Transparency _transparency;
1991
      ObjectId _visualStyle;
1992
      public SubEntityTraitsDumper(Database db)
1993
      {
1994
        _drawFlags = 0; // kNoDrawFlags 
1995
        _color = 0;
1996
        _ft = FillType.FillAlways;
1997
        _layer = db.Clayer;
1998
        _linetype = db.Celtype;
1999
        _lineWeight = db.Celweight;
2000
        _lineTypeScale = db.Celtscale;
2001
        _material = db.Cmaterial;
2002
        _shadowFlags = ShadowFlags.ShadowsIgnore;
2003
        _thickness = 0;
2004
        _trueColor = new EntityColor(ColorMethod.None);
2005
        _transparency = new Transparency();
2006
      }
1990
        class DrawContextDumper : Context
1991
        {
1992
            Database _db;
1993
            public DrawContextDumper(Database db)
1994
            {
1995
                _db = db;
1996
            }
1997
            public override Database Database
1998
            {
1999
                get { return _db; }
2000
            }
2001
            public override bool IsBoundaryClipping
2002
            {
2003
                get { return false; }
2004
            }
2005
            public override bool IsPlotGeneration
2006
            {
2007
                get { return false; }
2008
            }
2009
            public override bool IsPostScriptOut
2010
            {
2011
                get { return false; }
2012
            }
2013
        }
2014
        class SubEntityTraitsDumper : SubEntityTraits
2015
        {
2016
            short _color;
2017
            int _drawFlags;
2018
            FillType _ft;
2019
            ObjectId _layer;
2020
            ObjectId _linetype;
2021
            LineWeight _lineWeight;
2022
            Mapper _mapper;
2023
            double _lineTypeScale;
2024
            ObjectId _material;
2025
            PlotStyleDescriptor _plotStyleDescriptor;
2026
            bool _sectionable;
2027
            bool _selectionOnlyGeometry;
2028
            ShadowFlags _shadowFlags;
2029
            double _thickness;
2030
            EntityColor _trueColor;
2031
            Transparency _transparency;
2032
            ObjectId _visualStyle;
2033
            public SubEntityTraitsDumper(Database db)
2034
            {
2035
                _drawFlags = 0; // kNoDrawFlags 
2036
                _color = 0;
2037
                _ft = FillType.FillAlways;
2038
                _layer = db.Clayer;
2039
                _linetype = db.Celtype;
2040
                _lineWeight = db.Celweight;
2041
                _lineTypeScale = db.Celtscale;
2042
                _material = db.Cmaterial;
2043
                _shadowFlags = ShadowFlags.ShadowsIgnore;
2044
                _thickness = 0;
2045
                _trueColor = new EntityColor(ColorMethod.None);
2046
                _transparency = new Transparency();
2047
            }
2007 2048

  
2008
      protected override void SetLayerFlags(LayerFlags flags)
2009
      {
2010
        writeLine(0, string.Format("SubEntityTraitsDumper.SetLayerFlags(flags = {0})", flags));
2011
      }
2012
      public override void AddLight(ObjectId lightId)
2013
      {
2014
        writeLine(0, string.Format("SubEntityTraitsDumper.AddLight(lightId = {0})", lightId.ToString()));
2015
      }
2016
      public override void SetupForEntity(Entity entity)
2017
      {
2018
        writeLine(0, string.Format("SubEntityTraitsDumper.SetupForEntity(entity = {0})", entity.ToString()));
2019
      }
2049
            protected override void SetLayerFlags(LayerFlags flags)
2050
            {
2051
                writeLine(0, string.Format("SubEntityTraitsDumper.SetLayerFlags(flags = {0})", flags));
2052
            }
2053
            public override void AddLight(ObjectId lightId)
2054
            {
2055
                writeLine(0, string.Format("SubEntityTraitsDumper.AddLight(lightId = {0})", lightId.ToString()));
2056
            }
2057
            public override void SetupForEntity(Entity entity)
2058
            {
2059
                writeLine(0, string.Format("SubEntityTraitsDumper.SetupForEntity(entity = {0})", entity.ToString()));
2060
            }
2020 2061

  
2021
      public override short Color
2022
      {
2023
        get { return _color; }
2024
        set { _color = value; }
2025
      }
2026
      public override int DrawFlags
2027
      {
2028
        get { return _drawFlags; }
2029
        set { _drawFlags = value; }
2030
      }
2031
      public override FillType FillType
2032
      {
2033
        get { return _ft; }
2034
        set { _ft = value; }
2035
      }
2036
      public override ObjectId Layer
2037
      {
2038
        get { return _layer; }
2039
        set { _layer = value; }
2040
      }
2041
      public override ObjectId LineType
2042
      {
2043
        get { return _linetype; }
2044
        set { _linetype = value; }
2045
      }
2046
      public override double LineTypeScale
2047
      {
2048
        get { return _lineTypeScale; }
2049
        set { _lineTypeScale = value; }
2050
      }
2051
      public override LineWeight LineWeight
2052
      {
2053
        get { return _lineWeight; }
2054
        set { _lineWeight = value; }
2055
      }
2056
      public override Mapper Mapper
2057
      {
2058
        get { return _mapper; }
2059
        set { _mapper = value; }
2060
      }
2061
      public override ObjectId Material
2062
      {
2063
        get { return _material; }
2064
        set { _material = value; }
2065
      }
2066
      public override PlotStyleDescriptor PlotStyleDescriptor
2067
      {
2068
        get { return _plotStyleDescriptor; }
2069
        set { _plotStyleDescriptor = value; }
2070
      }
2071
      public override bool Sectionable
2072
      {
2073
        get { return _sectionable; }
2074
        set { _sectionable = value; }
2075
      }
2076
      public override bool SelectionOnlyGeometry
2077
      {
2078
        get { return _selectionOnlyGeometry; }
2079
        set { _selectionOnlyGeometry = value; }
2080
      }
2081
      public override ShadowFlags ShadowFlags
2082
      {
2083
        get { return _shadowFlags; }
2084
        set { _shadowFlags = value; }
2085
      }
2086
      public override double Thickness
2087
      {
2088
        get { return _thickness; }
2089
        set { _thickness = value; }
2090
      }
2091
      public override EntityColor TrueColor
2092
      {
2093
        get { return _trueColor; }
2094
        set { _trueColor = value; }
2095
      }
2096
      public override Transparency Transparency
2097
      {
2098
        get { return _transparency; }
2099
        set { _transparency = value; }
2100
      }
2101
      public override ObjectId VisualStyle
2102
      {
2103
        get { return _visualStyle; }
2104
        set { _visualStyle = value; }
2105
      }
2106
      public override void SetSelectionMarker(IntPtr sm)
2107
      {
2108
      }
2109
    }
2110
    class WorldGeometryDumper : WorldGeometry
2111
    {
2112
      Stack<Matrix3d> modelMatrix;
2113
      Stack<ClipBoundary> clips;
2114
      int indent;
2115
      public WorldGeometryDumper(int indent)
2116
        : base()
2117
      {
2118
        this.indent = indent;
2119
        modelMatrix = new Stack<Matrix3d>();
2120
        clips = new Stack<ClipBoundary>();
2121
        modelMatrix.Push(Matrix3d.Identity);
2122
      }
2123
      public override Matrix3d ModelToWorldTransform
2124
      {
2125
        get { return modelMatrix.Peek(); }
2126
      }
2127
      public override Matrix3d WorldToModelTransform
2128
      {
2129
        get { return modelMatrix.Peek().Inverse(); }
2130
      }
2062
            public override short Color
2063
            {
2064
                get { return _color; }
2065
                set { _color = value; }
2066
            }
2067
            public override int DrawFlags
2068
            {
2069
                get { return _drawFlags; }
2070
                set { _drawFlags = value; }
2071
            }
2072
            public override FillType FillType
2073
            {
2074
                get { return _ft; }
2075
                set { _ft = value; }
2076
            }
2077
            public override ObjectId Layer
2078
            {
2079
                get { return _layer; }
2080
                set { _layer = value; }
2081
            }
2082
            public override ObjectId LineType
2083
            {
2084
                get { return _linetype; }
2085
                set { _linetype = value; }
2086
            }
2087
            public override double LineTypeScale
2088
            {
2089
                get { return _lineTypeScale; }
2090
                set { _lineTypeScale = value; }
2091
            }
2092
            public override LineWeight LineWeight
2093
            {
2094
                get { return _lineWeight; }
2095
                set { _lineWeight = value; }
2096
            }
2097
            public override Mapper Mapper
2098
            {
2099
                get { return _mapper; }
2100
                set { _mapper = value; }
2101
            }
2102
            public override ObjectId Material
2103
            {
2104
                get { return _material; }
2105
                set { _material = value; }
2106
            }
2107
            public override PlotStyleDescriptor PlotStyleDescriptor
2108
            {
2109
                get { return _plotStyleDescriptor; }
2110
                set { _plotStyleDescriptor = value; }
2111
            }
2112
            public override bool Sectionable
2113
            {
2114
                get { return _sectionable; }
2115
                set { _sectionable = value; }
2116
            }
2117
            public override bool SelectionOnlyGeometry
2118
            {
2119
                get { return _selectionOnlyGeometry; }
2120
                set { _selectionOnlyGeometry = value; }
2121
            }
2122
            public override ShadowFlags ShadowFlags
2123
            {
2124
                get { return _shadowFlags; }
2125
                set { _shadowFlags = value; }
2126
            }
2127
            public override double Thickness
2128
            {
2129
                get { return _thickness; }
2130
                set { _thickness = value; }
2131
            }
2132
            public override EntityColor TrueColor
2133
            {
2134
                get { return _trueColor; }
2135
                set { _trueColor = value; }
2136
            }
2137
            public override Transparency Transparency
2138
            {
2139
                get { return _transparency; }
2140
                set { _transparency = value; }
2141
            }
2142
            public override ObjectId VisualStyle
2143
            {
2144
                get { return _visualStyle; }
2145
                set { _visualStyle = value; }
2146
            }
2147
            public override void SetSelectionMarker(IntPtr sm)
2148
            {
2149
            }
2150
        }
2151
        class WorldGeometryDumper : WorldGeometry
2152
        {
2153
            Stack<Matrix3d> modelMatrix;
2154
            Stack<ClipBoundary> clips;
2155
            int indent;
2156
            public WorldGeometryDumper(int indent)
2157
              : base()
2158
            {
2159
                this.indent = indent;
2160
                modelMatrix = new Stack<Matrix3d>();
2161
                clips = new Stack<ClipBoundary>();
2162
                modelMatrix.Push(Matrix3d.Identity);
2163
            }
2164
            public override Matrix3d ModelToWorldTransform
2165
            {
2166
                get { return modelMatrix.Peek(); }
2167
            }
2168
            public override Matrix3d WorldToModelTransform
2169
            {
2170
                get { return modelMatrix.Peek().Inverse(); }
2171
            }
2131 2172

  
2132
      public override Matrix3d PushOrientationTransform(OrientationBehavior behavior)
2133
      {
2134
        writeLine(indent, string.Format("WorldGeometry.PushOrientationTransform(behavior = {0})", behavior));
2135
        return new Matrix3d();
2136
      }
2137
      public override Matrix3d PushPositionTransform(PositionBehavior behavior, Point2d offset)
2138
      {
2139
        writeLine(indent, string.Format("WorldGeometry.PushPositionTransform(behavior = {0}, offset = {1})", behavior, offset));
2140
        return new Matrix3d();
2141
      }
2142
      public override Matrix3d PushPositionTransform(PositionBehavior behavior, Point3d offset)
2143
      {
2144
        writeLine(indent, string.Format("WorldGeometry.PushPositionTransform(behavior = {0}, offset = {1})", behavior, offset));
2145
        return new Matrix3d();
2146
      }
2147
      public override bool OwnerDraw(GdiDrawObject gdiDrawObject, Point3d position, Vector3d u, Vector3d v)
2148
      {
2149
        writeLine(indent, string.Format("WorldGeometry.OwnerDraw(gdiDrawObject = {0}, position = {1}, u = {2}, v = {3})", gdiDrawObject, position, u, v));
2150
        return false;
2151
      }
2152
      public override bool Polyline(Teigha.GraphicsInterface.Polyline polylineObj)
2153
      {
2154
        writeLine(indent, string.Format("WorldGeometry.Polyline(value = {0}", polylineObj));
2155
        return false;
2156
      }
2157
      public override bool Polypoint(Point3dCollection points, Vector3dCollection normals, IntPtrCollection subentityMarkers)
2158
      {
2159
        writeLine(indent, string.Format("WorldGeometry.Polypoint(points = {0}, normals = {1}, subentityMarkers = {2}", points, normals, subentityMarkers));
2160
        return false;
2161
      }
2162
      public override bool Polypoint(Point3dCollection points, EntityColorCollection colors, Vector3dCollection normals, IntPtrCollection subentityMarkers)
2163
      {
2164
        writeLine(indent, string.Format("WorldGeometry.Polypoint(points = {0}, colors = {1}, normals = {2}, subentityMarkers = {3}", points, colors, normals, subentityMarkers));
2165
        return false;
2166
      }
2167
      public override bool Polypoint(Point3dCollection points, EntityColorCollection colors, TransparencyCollection transparency, Vector3dCollection normals, IntPtrCollection subentityMarkers, int pointSize)
2168
      {
2169
        writeLine(indent, string.Format("WorldGeometry.Polypoint(points = {0}, colors = {1}, transparency = {2}, normals = {3}, subentityMarkers = {4}, pointSize = {5}", points, colors, transparency, normals, subentityMarkers, pointSize));
2170
        return false;
2171
      }
2172
      public override bool PolyPolyline(Teigha.GraphicsInterface.PolylineCollection polylineCollection)
2173
      {
2174
        writeLine(indent, string.Format("WorldGeometry.PolyPolyline(polylineCollection = {0}", polylineCollection));
2175
        return false;
2176
      }
2177
      public override bool PolyPolygon(UInt32Collection numPolygonPositions, Point3dCollection polygonPositions, UInt32Collection numPolygonPoints, Point3dCollection polygonPoints, EntityColorCollection outlineColors, LinetypeCollection outlineTypes, EntityColorCollection fillColors, Teigha.Colors.TransparencyCollection fillOpacities)
2178
      {
2179
        writeLine(indent, string.Format("WorldGeometry.PolyPolygon(numPolygonPositions = {0}, polygonPositions = {1}, numPolygonPoints = {2}, polygonPoints = {3}, outlineColors = {4}, outlineTypes = {5}, fillColors = {6}, fillOpacities = {7})", numPolygonPositions, polygonPositions, numPolygonPoints, polygonPoints, outlineColors, outlineTypes, fillColors, fillOpacities));
2180
        return false;
2181
      }
2182
      public override Matrix3d PushScaleTransform(ScaleBehavior behavior, Point2d extents)
2183
      {
2184
        writeLine(indent, string.Format("WorldGeometry.PushScaleTransform(behavior = {0}, extents = {1})", behavior, extents));
2185
        return new Matrix3d();
2186
      }
2187
      public override Matrix3d PushScaleTransform(ScaleBehavior behavior, Point3d extents)
2188
      {
2189
        writeLine(indent, string.Format("WorldGeometry.PushScaleTransform(behavior = {0}, extents = {1})", behavior, extents));
2190
        return new Matrix3d();
2191
      }
2192
      public override bool EllipticalArc(Point3d center, Vector3d normal, double majorAxisLength, double minorAxisLength, double startDegreeInRads, double endDegreeInRads, double tiltDegreeInRads, ArcType arType)
2193
      {
2194
        writeLine(indent, string.Format("WorldGeometry.EllipticalArc(center = {0}, normal = {1}, majorAxisLength = {2}, minorAxisLength = {3}, startDegreeInRads = {4}, endDegreeInRads = {5}, tiltDegreeInRads = {6}, arType = {7}", center, normal, majorAxisLength, minorAxisLength, startDegreeInRads, endDegreeInRads, tiltDegreeInRads, arType));
2195
        return false;
2196
      }
2197
      public override bool Circle(Point3d center, double radius, Vector3d normal)
2198
      {
2199
        writeLine(indent, string.Format("WorldGeometry.Circle(center = {0}, radius = {1}, normal = {2})", center, radius, normal));
2200
        return false;
2201
      }
2202
      public override bool Circle(Point3d firstPoint, Point3d secondPoint, Point3d thirdPoint)
2203
      {
2204
        writeLine(indent, string.Format("WorldGeometry.Circle(firstPoint = {0}, secondPoint = {1}, thirdPoint = {2})", firstPoint, secondPoint, thirdPoint));
2205
        return false;
2206
      }
2207
      public override bool CircularArc(Point3d start, Point3d point, Point3d endingPoint, ArcType arcType)
2208
      {
2209
        writeLine(indent, string.Format("WorldGeometry.CircularArc(start = {0}, point = {1}, endingPoint = {2}, arcType = {3})", start, point, endingPoint, arcType));
2210
        return false;
2211
      }
2212
      public override bool CircularArc(Point3d center, double radius, Vector3d normal, Vector3d startVector, double sweepAngle, ArcType arcType)
2213
      {
2214
        writeLine(indent, string.Format("WorldGeometry.CircularArc(center = {0}, radius = {1}, normal = {2}, startVector = {3}, sweepAngle = {4}, arcType = {5}", center, radius, normal, startVector, sweepAngle, arcType));
2215
        return false;
2216
      }
2217
      public override bool Draw(Drawable value)
2218
      {
2219
        writeLine(indent, string.Format("WorldGeometry.Draw(value = {0}", value));
2220
        return false;
2221
      }
2222
      public override bool Image(ImageBGRA32 imageSource, Point3d position, Vector3d u, Vector3d v)
2223
      {
2224
        writeLine(indent, string.Format("WorldGeometry.Image(imageSource = , position = {1}, Vector3d = {2}, Vector3d = {3}", position, u, v));
2225
        return false;
2226
      }
2227
      public override bool Image(ImageBGRA32 imageSource, Point3d position, Vector3d u, Vector3d v, TransparencyMode transparencyMode)
2228
      {
2229
        writeLine(indent, string.Format("WorldGeometry.Image(imageSource = , position = {1}, Vector3d = {2}, Vector3d = {3}, transparencyMode = {4}", position, u, v, transparencyMode));
2230
        return false;
2231
      }
2232
      public override bool Mesh(int rows, int columns, Point3dCollection points, EdgeData edgeData, FaceData faceData, VertexData vertexData, bool bAutoGenerateNormals)
2233
      {
2234
        writeLine(indent, string.Format("WorldGeometry.Mesh(rows = {0}, columns = {1}, points = {2}, edgeData = {3}, faceData = {4}, vertexData = {5}, bAutoGenerateNormals = {6})", rows, columns, points, edgeData, faceData, vertexData, bAutoGenerateNormals));
2235
        return false;
2236
      }
2237
      public override bool Polygon(Point3dCollection points)
2238
      {
2239
        writeLine(indent, string.Format("WorldGeometry.Polygon(points = {0})", points));
2240
        return false;
2241
      }
2242
      public override bool Polyline(Teigha.DatabaseServices.Polyline value, int fromIndex, int segments)
2243
      {
2244
        writeLine(indent, string.Format("WorldGeometry.Polyline(value = {0}, fromIndex = {1}, segments = {2})", value, fromIndex, segments));
2245
        return false;
2246
      }
2247
      public override bool Polyline(Point3dCollection points, Vector3d normal, IntPtr subEntityMarker)
2248
      {
2249
        writeLine(indent, string.Format("WorldGeometry.Polyline(points = {0}, normal = {1}, subEntityMarker = {2})", points, normal, subEntityMarker));
2250
        return false;
2251
      }
2252
      public override void PopClipBoundary()
2253
      {
2254
        writeLine(indent, string.Format("WorldGeometry.PopClipBoundary"));
2255
        clips.Pop();
2256
      }
2257
      public override bool PopModelTransform()
2258
      {
2259
        return true;
2260
      }
2261
      public override bool PushClipBoundary(ClipBoundary boundary)
2262
      {
2263
        writeLine(indent, string.Format("WorldGeometry.PushClipBoundary"));
2264
        clips.Push(boundary);
2265
        return true;
2266
      }
2267
      public override bool PushModelTransform(Matrix3d matrix)
2268
      {
2269
        writeLine(indent, "WorldGeometry.PushModelTransform(Matrix3d)");
2270
        Matrix3d m = modelMatrix.Peek();
2271
        modelMatrix.Push(m * matrix);
2272
        return true;
2273
      }
2274
      public override bool PushModelTransform(Vector3d normal)
2275
      {
2276
        writeLine(indent, "WorldGeometry.PushModelTransform(Vector3d)");
2277
        PushModelTransform(Matrix3d.PlaneToWorld(normal));
2278
        return true;
2279
      }
2280
      public override bool RowOfDots(int count, Point3d start, Vector3d step)
2281
      {
2282
        writeLine(indent, string.Format("ViewportGeometry.RowOfDots(count = {0}, start = {1}, step = {1})", count, start, step));
2283
        return false;
2284
      }
2285
      public override bool Ray(Point3d point1, Point3d point2)
2286
      {
2287
        writeLine(indent, string.Format("WorldGeometry.Ray(point1 = {0}, point2 = {1})", point1, point2));
2288
        return false;
2289
      }
2290
      public override bool Shell(Point3dCollection points, IntegerCollection faces, EdgeData edgeData, FaceData faceData, VertexData vertexData, bool bAutoGenerateNormals)
2291
      {
2292
        writeLine(indent, string.Format("WorldGeometry.Shell(points = {0}, faces = {1}, edgeData = {2}, faceData = {3}, vertexData = {4}, bAutoGenerateNormals = {5})", points, faces, edgeData, faceData, vertexData, bAutoGenerateNormals));
2293
        return false;
2294
      }
2295
      public override bool Text(Point3d position, Vector3d normal, Vector3d direction, string message, bool raw, TextStyle textStyle)
2296
      {
2297
        writeLine(indent, string.Format("WorldGeometry.Text(position = {0}, normal = {1}, direction = {2}, message = {3}, raw = {4}, textStyle = {5})", position, normal, direction, message, raw, textStyle));
2298
        return false;
2299
      }
2300
      public override bool Text(Point3d position, Vector3d normal, Vector3d direction, double height, double width, double oblique, string message)
2301
      {
2302
        writeLine(indent, string.Format("WorldGeometry.Text(position = {0}, normal = {1}, direction = {2}, height = {3}, width = {4}, oblique = {5}, message = {6})", position, normal, direction, height, width, oblique, message));
2303
        return false;
2304
      }
2305
      public override bool WorldLine(Point3d startPoint, Point3d endPoint)
2306
      {
2307
        writeLine(indent, string.Format("WorldGeometry.WorldLine(startPoint = {0}, endPoint = {1})", startPoint, endPoint));
2308
        return false;
2309
      }
2310
      public override bool Xline(Point3d point1, Point3d point2)
2311
      {
2312
        writeLine(indent, string.Format("WorldGeometry.Xline(point1 = {0}, point2 = {1})", point1, point2));
2313
        return false;
2314
      }
2315

  
2316
      public override void SetExtents(Extents3d extents)
2317
      {
2318
        writeLine(indent, "WorldGeometry.SetExtents({0}) ", extents);
2319
      }
2320
      public override void StartAttributesSegment()
2321
      {
2322
        writeLine(indent, "WorldGeometry.StartAttributesSegment called");
2323
      }
2324
    }
2173
            public override Matrix3d PushOrientationTransform(OrientationBehavior behavior)
2174
            {
2175
                writeLine(indent, string.Format("WorldGeometry.PushOrientationTransform(behavior = {0})", behavior));
2176
                return new Matrix3d();
2177
            }
2178
            public override Matrix3d PushPositionTransform(PositionBehavior behavior, Point2d offset)
2179
            {
2180
                writeLine(indent, string.Format("WorldGeometry.PushPositionTransform(behavior = {0}, offset = {1})", behavior, offset));
2181
                return new Matrix3d();
2182
            }
2183
            public override Matrix3d PushPositionTransform(PositionBehavior behavior, Point3d offset)
2184
            {
2185
                writeLine(indent, string.Format("WorldGeometry.PushPositionTransform(behavior = {0}, offset = {1})", behavior, offset));
2186
                return new Matrix3d();
2187
            }
2188
            public override bool OwnerDraw(GdiDrawObject gdiDrawObject, Point3d position, Vector3d u, Vector3d v)
2189
            {
2190
                writeLine(indent, string.Format("WorldGeometry.OwnerDraw(gdiDrawObject = {0}, position = {1}, u = {2}, v = {3})", gdiDrawObject, position, u, v));
2191
                return false;
2192
            }
2193
            public override bool Polyline(Teigha.GraphicsInterface.Polyline polylineObj)
2194
            {
2195
                writeLine(indent, string.Format("WorldGeometry.Polyline(value = {0}", polylineObj));
2196
                return false;
2197
            }
2198
            public override bool Polypoint(Point3dCollection points, Vector3dCollection normals, IntPtrCollection subentityMarkers)
2199
            {
2200
                writeLine(indent, string.Format("WorldGeometry.Polypoint(points = {0}, normals = {1}, subentityMarkers = {2}", points, normals, subentityMarkers));
2201
                return false;
2202
            }
2203
            public override bool Polypoint(Point3dCollection points, EntityColorCollection colors, Vector3dCollection normals, IntPtrCollection subentityMarkers)
2204
            {
2205
                writeLine(indent, string.Format("WorldGeometry.Polypoint(points = {0}, colors = {1}, normals = {2}, subentityMarkers = {3}", points, colors, normals, subentityMarkers));
2206
                return false;
2207
            }
2208
            public override bool Polypoint(Point3dCollection points, EntityColorCollection colors, TransparencyCollection transparency, Vector3dCollection normals, IntPtrCollection subentityMarkers, int pointSize)
2209
            {
2210
                writeLine(indent, string.Format("WorldGeometry.Polypoint(points = {0}, colors = {1}, transparency = {2}, normals = {3}, subentityMarkers = {4}, pointSize = {5}", points, colors, transparency, normals, subentityMarkers, pointSize));
2211
                return false;
2212
            }
2213
            public override bool PolyPolyline(Teigha.GraphicsInterface.PolylineCollection polylineCollection)
2214
            {
2215
                writeLine(indent, string.Format("WorldGeometry.PolyPolyline(polylineCollection = {0}", polylineCollection));
2216
                return false;
2217
            }
2218
            public override bool PolyPolygon(UInt32Collection numPolygonPositions, Point3dCollection polygonPositions, UInt32Collection numPolygonPoints, Point3dCollection polygonPoints, EntityColorCollection outlineColors, LinetypeCollection outlineTypes, EntityColorCollection fillColors, Teigha.Colors.TransparencyCollection fillOpacities)
2219
            {
2220
                writeLine(indent, string.Format("WorldGeometry.PolyPolygon(numPolygonPositions = {0}, polygonPositions = {1}, numPolygonPoints = {2}, polygonPoints = {3}, outlineColors = {4}, outlineTypes = {5}, fillColors = {6}, fillOpacities = {7})", numPolygonPositions, polygonPositions, numPolygonPoints, polygonPoints, outlineColors, outlineTypes, fillColors, fillOpacities));
2221
                return false;
2222
            }
2223
            public override Matrix3d PushScaleTransform(ScaleBehavior behavior, Point2d extents)
2224
            {
2225
                writeLine(indent, string.Format("WorldGeometry.PushScaleTransform(behavior = {0}, extents = {1})", behavior, extents));
2226
                return new Matrix3d();
2227
            }
2228
            public override Matrix3d PushScaleTransform(ScaleBehavior behavior, Point3d extents)
2229
            {
2230
                writeLine(indent, string.Format("WorldGeometry.PushScaleTransform(behavior = {0}, extents = {1})", behavior, extents));
2231
                return new Matrix3d();
2232
            }
2233
            public override bool EllipticalArc(Point3d center, Vector3d normal, double majorAxisLength, double minorAxisLength, double startDegreeInRads, double endDegreeInRads, double tiltDegreeInRads, ArcType arType)
2234
            {
2235
                writeLine(indent, string.Format("WorldGeometry.EllipticalArc(center = {0}, normal = {1}, majorAxisLength = {2}, minorAxisLength = {3}, startDegreeInRads = {4}, endDegreeInRads = {5}, tiltDegreeInRads = {6}, arType = {7}", center, normal, majorAxisLength, minorAxisLength, startDegreeInRads, endDegreeInRads, tiltDegreeInRads, arType));
2236
                return false;
2237
            }
2238
            public override bool Circle(Point3d center, double radius, Vector3d normal)
2239
            {
2240
                writeLine(indent, string.Format("WorldGeometry.Circle(center = {0}, radius = {1}, normal = {2})", center, radius, normal));
2241
                return false;
2242
            }
2243
            public override bool Circle(Point3d firstPoint, Point3d secondPoint, Point3d thirdPoint)
2244
            {
2245
                writeLine(indent, string.Format("WorldGeometry.Circle(firstPoint = {0}, secondPoint = {1}, thirdPoint = {2})", firstPoint, secondPoint, thirdPoint));
2246
                return false;
2247
            }
2248
            public override bool CircularArc(Point3d start, Point3d point, Point3d endingPoint, ArcType arcType)
2249
            {
2250
                writeLine(indent, string.Format("WorldGeometry.CircularArc(start = {0}, point = {1}, endingPoint = {2}, arcType = {3})", start, point, endingPoint, arcType));
2251
                return false;
2252
            }
2253
            public override bool CircularArc(Point3d center, double radius, Vector3d normal, Vector3d startVector, double sweepAngle, ArcType arcType)
2254
            {
2255
                writeLine(indent, string.Format("WorldGeometry.CircularArc(center = {0}, radius = {1}, normal = {2}, startVector = {3}, sweepAngle = {4}, arcType = {5}", center, radius, normal, startVector, sweepAngle, arcType));
2256
                return false;
2257
            }
2258
            public override bool Draw(Drawable value)
2259
            {
2260
                writeLine(indent, string.Format("WorldGeometry.Draw(value = {0}", value));
2261
                return false;
2262
            }
2263
            public override bool Image(ImageBGRA32 imageSource, Point3d position, Vector3d u, Vector3d v)
2264
            {
2265
                writeLine(indent, string.Format("WorldGeometry.Image(imageSource = , position = {1}, Vector3d = {2}, Vector3d = {3}", position, u, v));
2266
                return false;
2267
            }
2268
            public override bool Image(ImageBGRA32 imageSource, Point3d position, Vector3d u, Vector3d v, TransparencyMode transparencyMode)
2269
            {
2270
                writeLine(indent, string.Format("WorldGeometry.Image(imageSource = , position = {1}, Vector3d = {2}, Vector3d = {3}, transparencyMode = {4}", position, u, v, transparencyMode));
2271
                return false;
2272
            }
2273
            public override bool Mesh(int rows, int columns, Point3dCollection points, EdgeData edgeData, FaceData faceData, VertexData vertexData, bool bAutoGenerateNormals)
2274
            {
2275
                writeLine(indent, string.Format("WorldGeometry.Mesh(rows = {0}, columns = {1}, points = {2}, edgeData = {3}, faceData = {4}, vertexData = {5}, bAutoGenerateNormals = {6})", rows, columns, points, edgeData, faceData, vertexData, bAutoGenerateNormals));
2276
                return false;
2277
            }
2278
            public override bool Polygon(Point3dCollection points)
2279
            {
2280
                writeLine(indent, string.Format("WorldGeometry.Polygon(points = {0})", points));
2281
                return false;
2282
            }
2283
            public override bool Polyline(Teigha.DatabaseServices.Polyline value, int fromIndex, int segments)
2284
            {
2285
                writeLine(indent, string.Format("WorldGeometry.Polyline(value = {0}, fromIndex = {1}, segments = {2})", value, fromIndex, segments));
2286
                return false;
2287
            }
2288
            public override bool Polyline(Point3dCollection points, Vector3d normal, IntPtr subEntityMarker)
2289
            {
2290
                writeLine(indent, string.Format("WorldGeometry.Polyline(points = {0}, normal = {1}, subEntityMarker = {2})", points, normal, subEntityMarker));
... 이 차이점은 표시할 수 있는 최대 줄수를 초과해서 이 차이점은 잘렸습니다.

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)