using mesh manipulator does not work with animated mesh
I did not know that
The efficient way to do this is to adjust the orientation thro rotation, and then just simply add the required rotation.
Unfortunately, "adding" or accumulating rotations is not just a simple matter of using addition but of multiplying matrices (as smso showed you), having Irrlicht do it for you (as he suggested) or using quaternions as mongoose7 said. All of those involve much more math than simply adding degrees! Sometimes you can get away with just adding to the x and y rotations as long as x stays away from +/-90 degrees. If you are simply trying to turn a bunch of meshes that have been modeled so that they are oriented up (0,1,0) when they are loaded, and you want them to start off the program facing forward (0,0,-1), it's much
more efficient to do that manipulation once
(at the beginning of your program, before
the loop) rather than redoing it every single frame
! Better still, re-orient them in the modeling software/exporter so they show up with the correct orientation. Then, just worry about the one rotation.
Also, you at first said you had 700 nodes
but now you're saying you have 700 meshes
? There's an important difference. Do you have 700 actually different
models (a mesh is not a node) or just several? When you say you're copying the nodes, presumably they'll be using the same model in the mesh cache and so the copied nodes will not duplicate the mesh but merely redraw it with a different world transformation. In other words, 700 (or so) nodes could use one mesh (or a few different ones, if their geometry is actually different).