That's a hell of a lot of arithmetic to get our array indices.
[ ] Convert vnums to a static thread_local HGVertex member.
This gets rid of threadnum*vertices.size()+, size() itself being calculated via begin()-end().
[ ] Save an index to the first pointer: unsigned int vnum = HGVertex::vnums+(v-vertices.data())*3;
Carving out this side topic in order to close #217. Some background/notes there.
A few different v7 & v8 flavors are on BiggaTomato in branches: v7gs
5849d90
v8d8da55e
Refamiliarize.Another possible v7 variant...
That's a hell of a lot of arithmetic to get our array indices.
vnums
to astatic thread_local
HGVertex member. This gets rid ofthreadnum*vertices.size()+
,size()
itself being calculated viabegin()-end()
.unsigned int vnum = HGVertex::vnums+(v-vertices.data())*3;
vnum[0]
,vnum[1]
&vnum[2]
.Like I said in https://github.com/yakra/DataProcessing/issues/217#issuecomment-1092112851
TMBitset
is implemented, but there's more that can be done:HGEdge
alignment & sizeTMBitset
HGEdge::intermediate_points
-> C arrayHGEdge
(depends on contiguous Waypoints)TMBitset
HGVertex
size & alignment