-
Notifications
You must be signed in to change notification settings - Fork 117
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: attrib & attdef parsing (#109)
Co-authored-by: ibon eskudero <ibon.eskudero@tecnalia.com>
- Loading branch information
Showing
8 changed files
with
13,985 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,307 @@ | ||
import common from './common' | ||
import { assign as assignMTEXT } from './mtext' | ||
import { assign as assignTEXT } from './text' | ||
|
||
export const TYPE = 'ATTDEF' | ||
|
||
export const process = (tuples) => { | ||
return tuples.reduce((entity, tuple) => { | ||
const type = tuple[0] | ||
const value = tuple[1] | ||
|
||
assign(entity, type, value) | ||
|
||
return entity | ||
}, { | ||
type: TYPE, | ||
subclassMarker: 'AcDbText', | ||
thickness: 0, | ||
scaleX: 1, | ||
mtext: {}, | ||
text: {} | ||
}) | ||
} | ||
|
||
export const assign = (entity, type, value) => { | ||
switch (type) { | ||
|
||
case 100: | ||
entity.subclassMarker = value | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
ieskudero
Author
Contributor
|
||
case 1: | ||
switch( entity.subclassMarker ) { | ||
case 'AcDbText': | ||
assignTEXT( entity.text, type, value ) | ||
break | ||
case 'AcDbMText': | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
} | ||
break | ||
case 2: | ||
switch( entity.subclassMarker ) { | ||
case 'AcDbAttributeDefinition': | ||
case 'AcDbAttribute': | ||
entity.tag = value | ||
break | ||
case 'AcDbXrecord': | ||
entity.attdefFlag = value | ||
break | ||
} | ||
break | ||
case 3: | ||
switch( entity.subclassMarker ) { | ||
case 'AcDbAttributeDefinition': | ||
entity.prompt = value | ||
break | ||
case 'AcDbMText': | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
} | ||
break | ||
case 7: | ||
switch( entity.subclassMarker ) { | ||
case 'AcDbAttributeDefinition': | ||
case 'AcDbAttribute': | ||
assignTEXT( entity.text, type, value ) | ||
break | ||
case 'AcDbMText': | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
} | ||
break | ||
case 10: | ||
switch( entity.subclassMarker ) { | ||
case 'AcDbText': | ||
assignTEXT( entity.text, type, value ) | ||
break | ||
case 'AcDbMText': | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
case 'AcDbXrecord': | ||
entity.x = value | ||
break | ||
} | ||
break | ||
case 20: | ||
switch( entity.subclassMarker ) { | ||
case 'AcDbText': | ||
assignTEXT( entity.text, type, value ) | ||
break | ||
case 'AcDbMText': | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
case 'AcDbXrecord': | ||
entity.y = value | ||
break | ||
} | ||
break | ||
case 30: | ||
switch( entity.subclassMarker ) { | ||
case 'AcDbText': | ||
assignTEXT( entity.text, type, value ) | ||
break | ||
case 'AcDbMText': | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
case 'AcDbXrecord': | ||
entity.z = value | ||
break | ||
} | ||
break | ||
case 11: | ||
switch( entity.subclassMarker ) { | ||
case 'AcDbAttributeDefinition': | ||
case 'AcDbAttribute': | ||
entity.x2 = value | ||
break | ||
case 'AcDbMText': | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
} | ||
break | ||
case 21: | ||
switch( entity.subclassMarker ) { | ||
case 'AcDbAttributeDefinition': | ||
case 'AcDbAttribute': | ||
entity.y2 = value | ||
break | ||
case 'AcDbMText': | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
} | ||
break | ||
case 31: | ||
switch( entity.subclassMarker ) { | ||
case 'AcDbAttributeDefinition': | ||
case 'AcDbAttribute': | ||
entity.z2 = value | ||
break | ||
case 'AcDbMText': | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
} | ||
break | ||
case 39: | ||
assignTEXT( entity.text, type, value ) | ||
break | ||
case 40: | ||
switch( entity.subclassMarker ) { | ||
case 'AcDbText': | ||
assignTEXT( entity.text, type, value ) | ||
break | ||
case 'AcDbMText': | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
case 'AcDbXrecord': | ||
entity.annotationScale = value | ||
break | ||
} | ||
break | ||
case 41: | ||
switch( entity.subclassMarker ) { | ||
case 'AcDbAttributeDefinition': | ||
case 'AcDbAttribute': | ||
assignTEXT( entity.text, type, value ) | ||
break | ||
case 'AcDbMText': | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
} | ||
break | ||
case 42: | ||
case 43: | ||
case 44: | ||
case 45: | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
case 46: | ||
entity.mtext.annotationHeight = value | ||
break | ||
case 48: | ||
case 49: | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
case 50: | ||
switch( entity.subclassMarker ) { | ||
case 'AcDbAttributeDefinition': | ||
case 'AcDbAttribute': | ||
assignTEXT( entity.text, type, value ) | ||
break | ||
case 'AcDbMText': { | ||
assignMTEXT( entity.mtext, type, value ) | ||
} break | ||
} | ||
break | ||
case 51: | ||
assignTEXT( entity.text, type, value ) | ||
break | ||
case 63: | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
case 70: { | ||
switch( entity.subclassMarker ) { | ||
case 'AcDbAttributeDefinition': | ||
case 'AcDbAttribute': | ||
entity.attributeFlags = value | ||
break | ||
case 'AcDbXrecord': { | ||
if( typeof entity.mTextFlag === 'undefined' ) entity.mTextFlag | ||
This comment has been minimized.
Sorry, something went wrong.
skymakerolof
Owner
|
||
else if( typeof entity.isReallyLocked === 'undefined' ) entity.isReallyLocked = value | ||
else entity.secondaryAttdefCount = value | ||
} | ||
break | ||
} | ||
} break | ||
case 71: | ||
case 72: | ||
switch( entity.subclassMarker ) { | ||
case 'AcDbAttributeDefinition': | ||
case 'AcDbAttribute': | ||
assignTEXT( entity.text, type, value ) | ||
break | ||
case 'AcDbMText': | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
} | ||
break | ||
case 73: | ||
switch( entity.subclassMarker ) { | ||
case 'AcDbAttributeDefinition': | ||
case 'AcDbAttribute': | ||
entity.fieldLength = value | ||
break | ||
case 'AcDbMText': | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
} | ||
break | ||
case 74: | ||
assignTEXT( entity.text, 73, value ) | ||
break | ||
case 75: | ||
case 76: | ||
case 78: | ||
case 79: | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
case 90: | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
case 210: | ||
case 220: | ||
case 230: | ||
switch( entity.subclassMarker ) { | ||
case 'AcDbAttributeDefinition': | ||
case 'AcDbAttribute': | ||
assignTEXT( entity.mtext, type, value ) | ||
break | ||
case 'AcDbMText': | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
} | ||
break | ||
case 280: | ||
{ | ||
switch( entity.subclassMarker ) { | ||
case 'AcDbAttributeDefinition': | ||
case 'AcDbAttribute': | ||
entity.lock = value | ||
break | ||
case 'AcDbXrecord': | ||
entity.clone = true | ||
break | ||
} | ||
} break | ||
case 340: | ||
entity.attdefHandle = value | ||
break | ||
case 420: | ||
case 421: | ||
case 422: | ||
case 423: | ||
case 424: | ||
case 425: | ||
case 426: | ||
case 427: | ||
case 428: | ||
case 429: | ||
case 430: | ||
case 431: | ||
case 432: | ||
case 433: | ||
case 434: | ||
case 435: | ||
case 436: | ||
case 437: | ||
case 438: | ||
case 439: | ||
case 441: | ||
assignMTEXT( entity.mtext, type, value ) | ||
break | ||
default: | ||
Object.assign(entity, common(type, value)) | ||
break | ||
} | ||
} | ||
|
||
export default { TYPE, process, assign } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
import { assign } from './attdef' | ||
|
||
export const TYPE = 'ATTRIB' | ||
|
||
export const process = (tuples) => { | ||
return tuples.reduce((entity, tuple) => { | ||
const type = tuple[0] | ||
const value = tuple[1] | ||
|
||
assign(entity, type, value) | ||
|
||
return entity | ||
}, { | ||
type: TYPE, | ||
subclassMarker: 'AcDbText', | ||
thickness: 0, | ||
scaleX: 1, | ||
mtext: {}, | ||
text: {} | ||
}) | ||
} | ||
|
||
export default { TYPE, process } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
@ieskudero Missing
break
?