[TriEmbed] C++ class templates in Arduino - problems

alex at matrixwide.com alex at matrixwide.com
Tue Apr 21 16:33:41 CDT 2020


Anyone familiar with class templates? Code which has no problems under clang-1100.0.33.16 appears to have trouble under whatever Arduino 1.8.9 is using as a compiler.

Take these two lines as an example:

Vec3<unsigned char> *frameBuffer = new Vec3<unsigned char>[imageWidth * imageHeight];
for (uint32_t i = 0; i < imageWidth * imageHeight; ++i) frameBuffer[i] = Vec3<unsigned char>(255);

On Arduino, it complains the ‘for’ on the second line was unexpected. The compiler must be doing something wrong with substituting code on line 1 and losing the ‘;’ perhaps. But why?

For those with time:
Arduino code is here:
https://github.com/quarterturn/simple-wireframe

Linux or OSX command line code is here:
https://github.com/quarterturn/wireframe

What the code does is render a 3D model as a wireframe, using surface normals for back surface culling, as well as a z-buffer for hidden line removal. On the Arduino, should I ever get it working, it will send a vector list to an Arduino Due, which will use it to draw the image on an oscilloscope in XY mode.

I gotta get off Arduino. Only so many systicks in a day though.

Alex






More information about the TriEmbed mailing list