Revision 10111 trunk/libraries/libDwg/src/com/iver/cit/jdwglib/dwg/DwgObject.java
DwgObject.java | ||
---|---|---|
35 | 35 |
package com.iver.cit.jdwglib.dwg; |
36 | 36 |
|
37 | 37 |
import java.util.ArrayList; |
38 |
import java.util.Iterator; |
|
39 |
import java.util.LinkedList; |
|
38 | 40 |
import java.util.List; |
39 | 41 |
|
42 |
import com.iver.cit.jdwglib.dwg.objects.DwgLayer; |
|
43 |
|
|
40 | 44 |
/** |
41 | 45 |
* The DwgObject class represents a DWG object |
42 | 46 |
* |
... | ... | |
84 | 88 |
protected DwgHandleReference xDicObjHandle = null; |
85 | 89 |
|
86 | 90 |
protected boolean graphicsFlag; |
91 |
|
|
92 |
private DwgFile dwgFile = null; |
|
87 | 93 |
|
88 | 94 |
/** |
89 | 95 |
* Index of the dwg object in the object's map section |
... | ... | |
459 | 465 |
return this.lineTypeHandle != null; |
460 | 466 |
} |
461 | 467 |
|
468 |
public DwgObject getSuperEntity() { |
|
469 |
if(this.hasSubEntityHandle()){ |
|
470 |
int handleCode = this.subEntityHandle.getCode(); |
|
471 |
int offset = this.subEntityHandle.getOffset(); |
|
472 |
int handle = -1; |
|
473 |
|
|
474 |
DwgObject object; |
|
462 | 475 |
|
476 |
switch(handleCode){ |
|
477 |
// case 0x4: |
|
478 |
// case 0x8: |
|
479 |
// if (entity.hasNextHandle()){ |
|
480 |
// int nextHandleCode = entity.getNextHandle().getCode(); |
|
481 |
// if (nextHandleCode == 0x5) { |
|
482 |
// layerHandle = entity.getNextHandle().getOffset(); |
|
483 |
// } else { |
|
484 |
// //TODO No se han previsto nextHandleCode != 0x5 |
|
485 |
// System.out.println ("DwgFile.getDwgLayer: handleCode "+handleCode+ |
|
486 |
// " con nextHandleCode "+ nextHandleCode +" no implementado."); |
|
487 |
// } |
|
488 |
// } |
|
489 |
// break; |
|
490 |
case 0x5: |
|
491 |
handle = offset; |
|
492 |
break; |
|
493 |
case 0xC: |
|
494 |
handle = this.getHandle().getOffset() - offset + 1; |
|
495 |
break; |
|
496 |
default: |
|
497 |
System.out.println ("DwgObejct.getDwgSuperEntity: handleCode "+handleCode+" no implementado. offset = "+offset); |
|
498 |
} |
|
499 |
if(handle != -1){ |
|
500 |
LinkedList objects = this.dwgFile.getDwgObjects(); |
|
501 |
Iterator objsIterator = objects.iterator(); |
|
502 |
while(objsIterator.hasNext()){ |
|
503 |
object = (DwgObject) objsIterator.next(); |
|
504 |
int objHdl = object.getHandle().getOffset(); |
|
505 |
if (objHdl == handle){ |
|
506 |
return object; |
|
507 |
} |
|
508 |
} |
|
509 |
} |
|
510 |
System.out.println(" NO SE HA ENCONTRADO UN OBJETO CON HANDLE " + handle + ". handleCode = " + handleCode + " dwgObject.index = "+this.index +" dwgObject.type = " + this.type + " dwgObjectClassName = "+ this.getClass().getName()); |
|
511 |
} |
|
512 |
return null; |
|
513 |
} |
|
514 |
|
|
515 |
public void setDwgFile(DwgFile dwgFile){ |
|
516 |
this.dwgFile = dwgFile; |
|
517 |
} |
|
518 |
|
|
519 |
public DwgFile getDwgFile(){ |
|
520 |
return this.dwgFile; |
|
521 |
} |
|
463 | 522 |
} |
Also available in: Unified diff