ARKit generates polygonEdges with invalid values for the type of Edge.

ARKit is not correctly building "polygonEdge" items with correct Edge enumeration values. It appears to be finding an edge that is of the set Top/Bottom/Left/Right and leaving garbage in the field that should identify where the edge belongs resulting in some confusion later on when processing. I attached the data for the edges of the polygons when I displayed it In the debugger panel. When the debugger finds an edge type that it does not recognize it dumps the raw value in the field out to the text. If it is valid, the enumeration label for the field is dumped. That is why I think that garbage is being passed along because of the early bailout of the edge classification processing and the attributes of the edge not having a known classification processing for the object

This is from a posting for a bug in the Xcode Debugger pane, When running the Debugger for a session, the data for the PolygonEdges field is displayed for enumerated fields that contain unknown enumerations with <invalid> shown for the label, With the selection of “raw data” one would presumably see the hex representing the value that fit the labeled enumerated field of the structure but that is not what shows. Attached is a somewhat lengthy sample of the data for the field. The fact that the fields are invalid will be taken up with those responsible for the ARKit implementation in another venue.

It appears that formatting preferences really don’t mean anything and are ignored

([RoomPlan.CapturedRoom.Surface.Edge]) polygonEdges = 1456 values {

[0] = <invalid> (0xa9) [1] = <invalid> (0xc5) [2] = <invalid> (0xa2) [3] = <invalid> (0xe1) [4] = right [5] = top [6] = top [7] = top [8] = <invalid> (0xb2) [9] = <invalid> (0x10) [10] = top [11] = top [12] = top [13] = top [14] = top [15] = top [16] = <invalid> (0x40) [17] = <invalid> (0x1a) [18] = <invalid> (0x58) [19] = <invalid> (0x4) [20] = bottom [21] = top [22] = top [23] = top [24] = <invalid> (0xa9) [25] = <invalid> (0xc5) [26] = <invalid> (0xa2) [27] = <invalid> (0xe1) [28] = right [29] = top [30] = top [31] = top [32] = <invalid> (0xcb) [33] = <invalid> (0x19) [34] = top [35] = top [36] = top [37] = top [38] = top [39] = top [40] = <invalid> (0x40) [41] = <invalid> (0x1a) [42] = <invalid> (0x58) [43] = <invalid> (0x4) [44] = bottom [45] = top [46] = top [47] = top [48] = <invalid> (0xa9) [49] = <invalid> (0xc5) [50] = <invalid> (0xa2) [51] = <invalid> (0xe1) [52] = right [53] = top [54] = top [55] = top [56] = <invalid> (0x2f) [57] = <invalid> (0x1c) [58] = top [59] = top [60] = top [61] = top [62] = top [63] = top [64] = <invalid> (0x40) [65] = <invalid> (0x1a) [66] = <invalid> (0x58) [67] = <invalid> (0x4) [68] = bottom [69] = top [70] = top [71] = top [72] = <invalid> (0xa9) [73] = <invalid> (0xc5) [74] = <invalid> (0xa2) [75] = <invalid> (0xe1) [76] = right [77] = top [78] = top [79] = top [80] = <invalid> (0xd0) [81] = <invalid> (0xc) [82] = top [83] = top [84] = top [85] = top [86] = top [87] = top [88] = <invalid> (0x40) [89] = <invalid> (0x1a) [90] = <invalid> (0x58) [91] = <invalid> (0x4) [92] = bottom [93] = top [94] = top [95] = top [96] = <invalid> (0xa9) [97] = <invalid> (0xc5) [98] = <invalid> (0xa2) [99] = <invalid> (0xe1) [100] = right [101] = top [102] = top [103] = top [104] = <invalid> (0x92) [105] = <invalid> (0xa) [106] = top [107] = top [108] = top [109] = top [110] = top [111] = top [112] = <invalid> (0x40) [113] = <invalid> (0x1a) [114] = <invalid> (0x58) [115] = <invalid> (0x4) [116] = bottom [117] = top [118] = top [119] = top [120] = <invalid> (0xa9) [121] = <invalid> (0xc5) [122] = <invalid> (0xa2) [123] = <invalid> (0xe1) [124] = right [125] = top [126] = top [127] = top [128] = <invalid> (0x8) [129] = <invalid> (0x1d) [130] = top [131] = top [132] = top [133] = top [134] = top [135] = top [136] = <invalid> (0x40) [137] = <invalid> (0x1a) [138] = <invalid> (0x58) [139] = <invalid> (0x4) [140] = bottom [141] = top [142] = top [143] = top [144] = <invalid> (0xa9) [145] = <invalid> (0xc5) [146] = <invalid> (0xa2) [147] = <invalid> (0xe1) [148] = right