missioncommand / mil-sym-js

(RETIRED) MIL-STD-2525 symbol rendering JavaScript library for modern web applications
Apache License 2.0
76 stars 25 forks source link

Invalid Symbol #8

Closed brianwheeler closed 8 years ago

brianwheeler commented 8 years ago

Hello,

Someone noticed an error while testing our program.

We request the 2525B unitDefTable like so: armyc2.c2sd.renderer.utilities.UnitDefTable.getSymbolMap(armyc2.c2sd.renderer.utilities.RendererSettings.Symbology_2525Bch2_USAS_13_14)

In this map is the symbol code S_G_IC----H**\ (1.X.3.3.10, Tented Camp). I am told that this is not a 2525B symbol code.

When I call armyc2.c2sd.renderer.utilities.SymbolUtilities.getBasicSymbolID with that symbol code, it returns blanks (---------------).

It does the same thing when using 2525C. Other symbol codes work as expected.

I don't think that symbol code should be in the map (or if it should, the getBasicSymbolID should convert it properly).

michael-spinelli commented 8 years ago

I'll check the returning blanks thing and see if that's a bug. It really shouldn't behave differently on one specific symbol code.

As far as it not being a part of 2525B, that is true. However, being that this project by the army and for the army, we support something called the USAS (United Specification for ABCS (Army Battle Command Systems) Symbology). It's kind of an addon to the MilStd 2525. It pulls in a number of symbols from 2525C and clarifies the rendering for some the the 2525Bch2 symbology. It also adds a few unique symbols. I'm trying to figure out if I can distribute the USAS or not as I get this question a lot.

michael-spinelli commented 8 years ago

"S_G_IC----H****" is already a basic symbol ID. When I run it through getBasicSymbolID it does lop off the 'H' but leaves the rest intact. Not having the 'H' for this specific symbol will cause a problem for looking up the unitDef for this particular symbol via the unitDefTable. But I'm not getting all dashes like you're seeing.

brianwheeler commented 8 years ago

Yes, sorry. I was getting all dashes because my program was resetting the symbol code to all dashes after it could not find the given one in the list of symbol codes. The reason it could not find it in the list is probably due to the lack of that extra character you mentioned.

michael-spinelli commented 8 years ago

getBasicSymbolID has been updated to return the code with the 'H'. getBasicSymbolIDStrict has been added and continues with the old behavior. That's more for internal use.