개정판 48a26489
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