title: How can I do a Repeater of an Entity?
body: <p>In QML, I want to iterate through a list and instantiate an <a href="https://doc.qt.io/qt-5/qml-qt3d-core-entity.html" rel="nofollow noreferrer"><code>Entity</code></a> .   Currently, I'm using a <a href="http://doc.qt.io/qt-5/qml-qtquick-repeater.html" rel="nofollow noreferrer"><code>Repeater</code></a>, but it appears that an <code>Entity</code> is not a <code>Component</code>.</p>
  
  <p>I've tried the following</p>
  
  <pre><code>import QtQuick 2.9
  import QtQuick.Controls 2.2
  import QtQuick.Layouts 1.3
  import QtQuick.Dialogs 1.0
  import QtPositioning 5.2;
  import Qt3D.Core 2.0
  import Qt3D.Render 2.0
  import Qt3D.Input 2.0
  import Qt3D.Extras 2.9
  import QtQuick.Scene3D 2.0
  
  Flickable {
    id: flickable;
  
    ScrollBar.vertical: ScrollBar {
      background: Rectangle {
        border.width:1
        border.color: 'gray';
        color: "#00000000";
        radius: 4;
      }
    }
  
    Scene3D {
      id: scene3d
      anchors.margins: 1;
      anchors.left: parent.left;
      anchors.top: parent.top;
      height: 600;
      width: 600;
  
      focus: true
      onActiveFocusChanged: {
        console.log('flickable.interactive',flickable.interactive);
        flickable.interactive = !activeFocus;
      }
      aspects: ["input", "logic"]
      cameraAspectRatioMode: Scene3D.AutomaticAspectRatio
  
      Entity {
        id: sceneRoot
  
        Camera {
          id: camera
          projectionType: CameraLens.PerspectiveProjection
          fieldOfView: 45
          aspectRatio: 1 // 16/9
          nearPlane : 0.1
          farPlane : 1000.0
          position: Qt.vector3d( 255, 255, 700.0 )
          upVector: Qt.vector3d( 0.0, 1.0, 0.0 )
          viewCenter: Qt.vector3d( 128, 128, 0.0 )
        }
  
        OrbitCameraController {
          camera: camera
        }
  
        components: [
          RenderSettings {
            activeFrameGraph: ForwardRenderer {
              clearColor: Qt.rgba(1, 1, 1, 1)
              camera: camera
            }
          },
          // Event Source will be set by the Qt3DQuickWindow
          InputSettings { }
        ]
  
        PhongMaterial {
          id: material
        }
  
        Entity {
            Component.onCompleted: {
              console.log('Entity completed.');
            }
            ExtrudedTextMesh { id: ex_label; text: 'Example'; depth: 0.1}
            Transform{ id: ex_label_transform; translation: Qt.vector3d(128 - 10, 128, 0); scale3D: Qt.vector3d(20,20,20); }
  
            components: [ex_label, material, ex_label_transform];
          }
  
  
        Repeater {
          model: [{name:'foo'}]
          Entity {
            Component.onCompleted: {
              console.log('Entity completed.');
            }
            ExtrudedTextMesh { id: label; text: 'Index' + index; depth: 0.1}
            Transform{ id: label_transform; translation: Qt.vector3d(128 + index*10, 128, 0); scale3D: Qt.vector3d(20,20,20); }
  
            components: [label, material, label_transform];
          }
        }
  
      }
    }
  }
  </code></pre>
  
  <p>Which yields:<br>
  <a href="https://i.stack.imgur.com/JvXwL.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/JvXwL.png" alt="enter image description here"></a></p>
  
  <p>I expected to see some other extruded text of <code>Index 0</code>, to no avail.</p>
  
  <p>How can I get the equivalent of a <code>Repeater</code> for instantiating <code>Entities</code>?</p>
  
  <h2>My Workaround</h2>
  
  <pre><code>Entity {
    PhongAlphaMaterial { id: phong_mat_0; ambient: '#000'; alpha: model_list.length &gt; 0 ? 0.8 : 0;}
    ExtrudedTextMesh { id: label_0; text: 'Index 0'; depth: 0.1}
    Transform{ id: label_transform_0; translation: Qt.vector3d(128 + 0*10, 128, 0); scale3D: Qt.vector3d(20,20,20); }
    components: [label_0, phong_mat_0, label_transform_0];
  }
  
  Entity {
    PhongAlphaMaterial { id: phong_mat_1; ambient: '#000'; alpha: model_list.length &gt;1 ? 0.8 : 0;}
    ExtrudedTextMesh { id: label_1; text: 'Index 1'; depth: 0.1}
    Transform{ id: label_transform_1; translation: Qt.vector3d(128 + 1*10, 128, 0); scale3D: Qt.vector3d(20,20,20); }
    components: [label_1, phong_mat_1, label_transform_1];
  }
  
  Entity {
    PhongAlphaMaterial { id: phong_mat_2; ambient: '#000'; alpha: model_list.length &gt;2 ? 0.8 : 0;}
    ExtrudedTextMesh { id: label_2; text: 'Index 2'; depth: 0.2}
    Transform{ id: label_transform_2; translation: Qt.vector3d(128 + 2*10, 128, 0); scale3D: Qt.vector3d(20,20,20); }
    components: [label_2, phong_mat_2, label_transform_2];
  }
  </code></pre>