Charles, I love it. Since we are not using New, then no Del, we are using getmemory and then freememory, so that eliminates confusion on when to use which.
I don't understand this:
method ShowAll() as string
tree*tr
sys i
method+=s ": Coords " x ", " y ", " z chr(13) chr(10)
for i=1 to branches
if t[i] then
@tr=t[i]
method+=tr.ShowAll() 'RECURSE
end if
next
end method
method+=s ": Coords " x ", " y ", " z chr(13) chr(10)
method+=tr.ShowAll() 'RECURSE
I thought method used like that was like return. How can you have +=? Also on the recurse, won't it exit when it sees the first method? I don't see a conditional to prevent it.
Anyways, I know this must have been a nightmare to solve. But it is making for a tighter better oxygen.
The last 2 days I have been working on 1 million cVec3's, creating, inserting, resorting and getting back the data. Here is the moral of the story:
With a small test, as we have in the cArray that you were using, it was just a few records hand entered. It was no problem. Once I got a good RandDouble function to generate random cVec3's, I started bumping it up. One thousand, no problem. Ten Thousand, no problem. 100 Thousand, about 5 seconds total time, not bad at all. 1 Million about a minute, too slow and that was after optimizing. The original took about 4 minutes at 1 Million. In reading Sqlite3 documentation, they say I should be able to do about 50,000 inserts per second on an average computer. So I am working to get it down to around 20 seconds, with 1 million inserts. With your improvements to the classes, it will help get data in and out faster now.
Thanks again!