feat: Detect background color info in VRML 1 and encode it in VRML 97 (#11)
Resolves #7 Reviewed-on: #11 Co-authored-by: Glen Whitney <glen@studioinfinity.org> Co-committed-by: Glen Whitney <glen@studioinfinity.org>
This commit is contained in:
parent
8a0ece1dde
commit
b355d0c001
@ -1,6 +1,6 @@
|
||||
{
|
||||
name: 'vrml1to97',
|
||||
version: '0.1.0',
|
||||
version: '0.1.1',
|
||||
description: 'JavaScript converter from VRML 1 to VRML97',
|
||||
scripts: {
|
||||
test: 'echo "Error: no test specified" && exit 1',
|
||||
|
@ -143,11 +143,24 @@ function parse(stream: Lexer, tree: Tree = {}): Tree
|
||||
else
|
||||
parse stream // discard the subgroup
|
||||
held = filtered stream
|
||||
if not held or held.type === 'cbrace' then break
|
||||
{ht: 'word', hv: 'vertexOrdering', nt: 'word', nv: 'COUNTERCLOCKWISE'}
|
||||
tree.vertexOrdering = ['ccw']
|
||||
held = filtered stream
|
||||
if not held or held.type === 'cbrace' then break
|
||||
{ht: 'word', hv: 'BackgroundColor', nt: 'word', nv: 'Info'}
|
||||
opener := filtered stream
|
||||
if opener and opener.type === 'obrace'
|
||||
contents := toksUntilClose stream
|
||||
// Find the first string token and assume it is the color
|
||||
stok := contents.find .type[0] === 'string'
|
||||
colorString := stok?.value[0]
|
||||
if colorString and typeof colorString === 'string'
|
||||
color := colorString.replace /^"|"$/g, ''
|
||||
addChild `Background {
|
||||
groundColor [ ${color} ]
|
||||
skyColor [ ${color} ]
|
||||
}\n`, tree
|
||||
held = filtered stream
|
||||
else held = opener
|
||||
else
|
||||
held = next // ignore unknown words
|
||||
if not held or held.type === 'cbrace' then break
|
||||
|
Loading…
Reference in New Issue
Block a user