21 :
SLScene(
"Mass Animation Test Scene")
23 info(
"Performance test for transform updates from many animations.");
69 const SLint levels = 3;
70 const SLint gridSize = 3;
71 const SLint gridHalf = gridSize / 2;
72 const SLint nodesPerLvl = gridSize * gridSize;
78 for (
SLint i = 0; i < levels; ++i)
82 vector<SLNode*> parents;
83 vector<SLNode*> curParentsVector;
86 parents.push_back(scene);
89 for (
float lvl : nodeSpacing)
91 curParentsVector = parents;
95 for (
auto parent : curParentsVector)
97 for (
SLint i = 0; i < nodesPerLvl; ++i)
101 parent->addChild(node);
102 parents.push_back(node);
106 SLfloat z = (
SLfloat)((i > 0) ? i / gridSize - gridHalf : -gridHalf);
107 SLVec3f pos(x * lvl * 1.1f, 1.5f, z * lvl * 1.1f);
115 oss <<
"random anim " << nodeIndex++;
The AppCommon class holds the top-level instances of the app-demo.
Class declaration for an SLScene inherited class.
@ EC_inOutSine
sine easing in and then out
@ AL_pingPongLoop
loop forward and backwards
SLVec3< SLfloat > SLVec3f
void assemble(SLAssetManager *am, SLSceneView *sv) override
After parallel loading of the assets the scene gets assembled in here.
void registerAssetsToLoad(SLAssetLoader &al) override
All scene specific assets have to be registered for async loading in here.
AppDemoSceneAnimNodeMass()
SLAnimation * createNodeAnimation(SLfloat duration)
SLAnimation is the base container for all animation data.
SLNodeAnimTrack * createNodeAnimTrackForTranslation(SLNode *target, const SLVec3f &endPos)
Toplevel holder of the assets meshes, materials, textures and shaders.
Active or visible camera node class.
void focalDist(const SLfloat f)
SLLightSpot class for a spot light source.
Defines a standard CG material with textures and a shader program.
SLNode represents a node in a hierarchical scene graph.
void addChild(SLNode *child)
void translation(const SLVec3f &pos, SLTransformSpace relativeTo=TS_parent)
virtual void addMesh(SLMesh *mesh)
void lookAt(SLfloat targetX, SLfloat targetY, SLfloat targetZ, SLfloat upX=0, SLfloat upY=1, SLfloat upZ=0, SLTransformSpace relativeTo=TS_world)
void translate(const SLVec3f &vec, SLTransformSpace relativeTo=TS_object)
The SLScene class represents the top level instance holding the scene structure.
SLAnimManager & animManager()
SceneView class represents a dynamic real time 3D view onto the scene.
void camera(SLCamera *camera)