30 , mWithNormals( _withNormals )
31 , mInvertNormals( _invertNormals )
32 , mAddBackFaces( _addBackFaces )
33 , mAddTextureCoords( _addTextureCoords )
35 mVertexBuffer =
new Qt3DCore::QBuffer(
this );
40 const int stride = tmpTess.
stride();
42 mPositionAttribute =
new Qt3DCore::QAttribute(
this );
43 mPositionAttribute->setName( Qt3DCore::QAttribute::defaultPositionAttributeName() );
44 mPositionAttribute->setVertexBaseType( Qt3DCore::QAttribute::Float );
45 mPositionAttribute->setVertexSize( 3 );
46 mPositionAttribute->setAttributeType( Qt3DCore::QAttribute::VertexAttribute );
47 mPositionAttribute->setBuffer( mVertexBuffer );
48 mPositionAttribute->setByteStride( stride );
49 mPositionAttribute->setByteOffset( 0 );
50 addAttribute( mPositionAttribute );
54 mNormalAttribute =
new Qt3DCore::QAttribute(
this );
55 mNormalAttribute->setName( Qt3DCore::QAttribute::defaultNormalAttributeName() );
56 mNormalAttribute->setVertexBaseType( Qt3DCore::QAttribute::Float );
57 mNormalAttribute->setVertexSize( 3 );
58 mNormalAttribute->setAttributeType( Qt3DCore::QAttribute::VertexAttribute );
59 mNormalAttribute->setBuffer( mVertexBuffer );
60 mNormalAttribute->setByteStride( stride );
61 mNormalAttribute->setByteOffset( 3 *
sizeof(
float ) );
62 addAttribute( mNormalAttribute );
64 if ( mAddTextureCoords )
66 mTextureCoordsAttribute =
new Qt3DCore::QAttribute(
this );
67 mTextureCoordsAttribute->setName( Qt3DCore::QAttribute::defaultTextureCoordinateAttributeName() );
68 mTextureCoordsAttribute->setVertexBaseType( Qt3DCore::QAttribute::Float );
69 mTextureCoordsAttribute->setVertexSize( 2 );
70 mTextureCoordsAttribute->setAttributeType( Qt3DCore::QAttribute::VertexAttribute );
71 mTextureCoordsAttribute->setBuffer( mVertexBuffer );
72 mTextureCoordsAttribute->setByteStride( stride );
73 mTextureCoordsAttribute->setByteOffset( mWithNormals ? 6 *
sizeof(
float ) : 3 *
sizeof(
float ) );
74 addAttribute( mTextureCoordsAttribute );
81 mTriangleIndexFids = triangleIndexFids;
83 mVertexBuffer->setData( vertexBufferData );
84 mPositionAttribute->setCount( vertexCount );
85 if ( mNormalAttribute )
86 mNormalAttribute->setCount( vertexCount );
87 if ( mTextureCoordsAttribute )
88 mTextureCoordsAttribute->setCount( vertexCount );
void setData(const QByteArray &vertexBufferData, int vertexCount, const QVector< QgsFeatureId > &triangleIndexFids, const QVector< uint > &triangleIndexStartingIndices)
Initializes vertex buffer (and other members) from data that were already tessellated.