27 , mWithNormals( _withNormals )
28 , mInvertNormals( _invertNormals )
29 , mAddBackFaces( _addBackFaces )
30 , mAddTextureCoords( _addTextureCoords )
31 , mWithTangents( withTangents )
33 mVertexBuffer =
new Qt3DCore::QBuffer(
this );
34 mIndexBuffer =
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 );
51 int vertexBufferOffset = 3 *
sizeof( float );
53 mIndexAttribute =
new Qt3DCore::QAttribute(
this );
54 mIndexAttribute->setName(
"indexBuffer" );
55 mIndexAttribute->setAttributeType( Qt3DCore::QAttribute::IndexAttribute );
56 mIndexAttribute->setVertexBaseType( Qt3DCore::QAttribute::UnsignedInt );
57 mIndexAttribute->setBuffer( mIndexBuffer );
58 addAttribute( mIndexAttribute );
62 mNormalAttribute =
new Qt3DCore::QAttribute(
this );
63 mNormalAttribute->setName( Qt3DCore::QAttribute::defaultNormalAttributeName() );
64 mNormalAttribute->setVertexBaseType( Qt3DCore::QAttribute::Float );
65 mNormalAttribute->setVertexSize( 3 );
66 mNormalAttribute->setAttributeType( Qt3DCore::QAttribute::VertexAttribute );
67 mNormalAttribute->setBuffer( mVertexBuffer );
68 mNormalAttribute->setByteStride( stride );
69 mNormalAttribute->setByteOffset( vertexBufferOffset );
70 addAttribute( mNormalAttribute );
71 vertexBufferOffset += 3 *
sizeof( float );
75 mTangentAttribute =
new Qt3DCore::QAttribute(
this );
76 mTangentAttribute->setName( Qt3DCore::QAttribute::defaultTangentAttributeName() );
77 mTangentAttribute->setVertexBaseType( Qt3DCore::QAttribute::Float );
78 mTangentAttribute->setVertexSize( 4 );
79 mTangentAttribute->setAttributeType( Qt3DCore::QAttribute::VertexAttribute );
80 mTangentAttribute->setBuffer( mVertexBuffer );
81 mTangentAttribute->setByteStride( stride );
82 mTangentAttribute->setByteOffset( vertexBufferOffset );
83 addAttribute( mTangentAttribute );
84 vertexBufferOffset += 4 *
sizeof( float );
86 if ( mAddTextureCoords )
88 mTextureCoordsAttribute =
new Qt3DCore::QAttribute(
this );
89 mTextureCoordsAttribute->setName( Qt3DCore::QAttribute::defaultTextureCoordinateAttributeName() );
90 mTextureCoordsAttribute->setVertexBaseType( Qt3DCore::QAttribute::Float );
91 mTextureCoordsAttribute->setVertexSize( 2 );
92 mTextureCoordsAttribute->setAttributeType( Qt3DCore::QAttribute::VertexAttribute );
93 mTextureCoordsAttribute->setBuffer( mVertexBuffer );
94 mTextureCoordsAttribute->setByteStride( stride );
95 mTextureCoordsAttribute->setByteOffset( vertexBufferOffset );
96 addAttribute( mTextureCoordsAttribute );
97 vertexBufferOffset += 2 *
sizeof( float );
104 mTriangleIndexFids = triangleIndexFids;
106 mVertexBuffer->setData( vertexBufferData );
107 mPositionAttribute->setCount( vertexCount );
108 if ( mNormalAttribute )
109 mNormalAttribute->setCount( vertexCount );
110 if ( mTangentAttribute )
111 mTangentAttribute->setCount( vertexCount );
112 if ( mTextureCoordsAttribute )
113 mTextureCoordsAttribute->setCount( vertexCount );