diff --git a/python/3d/auto_generated/symbols/qgspoint3dsymbol.sip.in b/python/3d/auto_generated/symbols/qgspoint3dsymbol.sip.in index 0543268ad03b..57c89f0d2314 100644 --- a/python/3d/auto_generated/symbols/qgspoint3dsymbol.sip.in +++ b/python/3d/auto_generated/symbols/qgspoint3dsymbol.sip.in @@ -191,9 +191,9 @@ Returns transform for individual objects represented by the symbol Sets transform for individual objects represented by the symbol %End - QMatrix4x4 billboardTransform() const; + float billboardHeight() const; %Docstring -Returns transform for billboards +Returns how much the billboard should be elevated upwards %End private: diff --git a/python/PyQt6/3d/auto_generated/symbols/qgspoint3dsymbol.sip.in b/python/PyQt6/3d/auto_generated/symbols/qgspoint3dsymbol.sip.in index 0543268ad03b..57c89f0d2314 100644 --- a/python/PyQt6/3d/auto_generated/symbols/qgspoint3dsymbol.sip.in +++ b/python/PyQt6/3d/auto_generated/symbols/qgspoint3dsymbol.sip.in @@ -191,9 +191,9 @@ Returns transform for individual objects represented by the symbol Sets transform for individual objects represented by the symbol %End - QMatrix4x4 billboardTransform() const; + float billboardHeight() const; %Docstring -Returns transform for billboards +Returns how much the billboard should be elevated upwards %End private: diff --git a/src/3d/qgs3dutils.cpp b/src/3d/qgs3dutils.cpp index 291f1868d67a..5da4d7c9fb2d 100644 --- a/src/3d/qgs3dutils.cpp +++ b/src/3d/qgs3dutils.cpp @@ -488,7 +488,7 @@ QMatrix4x4 Qgs3DUtils::stringToMatrix4x4( const QString &str ) return m; } -void Qgs3DUtils::extractPointPositions( const QgsFeature &f, const Qgs3DRenderContext &context, Qgis::AltitudeClamping altClamp, QVector &positions ) +void Qgs3DUtils::extractPointPositions( const QgsFeature &f, const Qgs3DRenderContext &context, const QgsVector3D &chunkOrigin, Qgis::AltitudeClamping altClamp, QVector &positions ) { const QgsAbstractGeometry *g = f.geometry().constGet(); for ( auto it = g->vertices_begin(); it != g->vertices_end(); ++it ) @@ -513,7 +513,10 @@ void Qgs3DUtils::extractPointPositions( const QgsFeature &f, const Qgs3DRenderCo h = terrainZ + geomZ; break; } - positions.append( QVector3D( pt.x() - context.origin().x(), h, -( pt.y() - context.origin().y() ) ) ); + positions.append( QVector3D( + static_cast( pt.x() - chunkOrigin.x() ), + static_cast( pt.y() - chunkOrigin.y() ), + h ) ); QgsDebugMsgLevel( QStringLiteral( "%1 %2 %3" ).arg( positions.last().x() ).arg( positions.last().y() ).arg( positions.last().z() ), 2 ); } } diff --git a/src/3d/qgs3dutils.h b/src/3d/qgs3dutils.h index 388a219fae67..0c8454890065 100644 --- a/src/3d/qgs3dutils.h +++ b/src/3d/qgs3dutils.h @@ -143,7 +143,7 @@ class _3D_EXPORT Qgs3DUtils static QMatrix4x4 stringToMatrix4x4( const QString &str ); //! Calculates (x,y,z) positions of (multi)point from the given feature - static void extractPointPositions( const QgsFeature &f, const Qgs3DRenderContext &context, Qgis::AltitudeClamping altClamp, QVector &positions ); + static void extractPointPositions( const QgsFeature &f, const Qgs3DRenderContext &context, const QgsVector3D &chunkOrigin, Qgis::AltitudeClamping altClamp, QVector &positions ); /** * Returns TRUE if bbox is completely outside the current viewing volume. diff --git a/src/3d/qgsfeature3dhandler_p.cpp b/src/3d/qgsfeature3dhandler_p.cpp index 8164033e7d89..857d4f71675d 100644 --- a/src/3d/qgsfeature3dhandler_p.cpp +++ b/src/3d/qgsfeature3dhandler_p.cpp @@ -28,10 +28,10 @@ void QgsFeature3DHandler::updateZRangeFromPositions( const QVector &p { for ( const QVector3D &pos : positions ) { - if ( pos.y() < mZMin ) - mZMin = pos.y(); - if ( pos.y() > mZMax ) - mZMax = pos.y(); + if ( pos.z() < mZMin ) + mZMin = pos.z(); + if ( pos.z() > mZMax ) + mZMax = pos.z(); } } diff --git a/src/3d/qgsfeature3dhandler_p.h b/src/3d/qgsfeature3dhandler_p.h index a6e3366f8cb9..a1f89d6a4d1c 100644 --- a/src/3d/qgsfeature3dhandler_p.h +++ b/src/3d/qgsfeature3dhandler_p.h @@ -49,7 +49,7 @@ class QgsFeature3DHandler * Called before feature iteration starts to initialize, get required attributes. * \returns TRUE on success (on FALSE the handler failed to initialize and processFeature() / finalize() should not be called */ - virtual bool prepare( const Qgs3DRenderContext &context, QSet &attributeNames ) = 0; + virtual bool prepare( const Qgs3DRenderContext &context, QSet &attributeNames, const QgsVector3D &chunkOrigin ) = 0; /** * Called for every feature to extract information out of it into some diff --git a/src/3d/qgsrubberband3d.cpp b/src/3d/qgsrubberband3d.cpp index f00f5c177d4f..9c9b9a413613 100644 --- a/src/3d/qgsrubberband3d.cpp +++ b/src/3d/qgsrubberband3d.cpp @@ -80,6 +80,10 @@ QgsRubberBand3D::QgsRubberBand3D( Qgs3DMapSettings &map, QgsWindow3DEngine *engi mLineEntity->addComponent( mLineMaterial ); + Qt3DCore::QTransform *lineTransform = new Qt3DCore::QTransform; + lineTransform->setRotation( QQuaternion::fromAxisAndAngle( QVector3D( 1, 0, 0 ), -90 ) ); // flip map (x,y,z) to world (x,z,-y) + mLineEntity->addComponent( lineTransform ); + // Rubberband vertex markers mMarkerEntity = new Qt3DCore::QEntity( parentEntity ); mMarkerGeometry = new QgsBillboardGeometry(); @@ -99,6 +103,10 @@ QgsRubberBand3D::QgsRubberBand3D( Qgs3DMapSettings &map, QgsWindow3DEngine *engi mMarkerSymbol = QgsMarkerSymbol::createSimple( props ); updateMarkerMaterial(); mMarkerEntity->addComponent( mMarkerGeometryRenderer ); + + Qt3DCore::QTransform *markerTransform = new Qt3DCore::QTransform; + markerTransform->setRotation( QQuaternion::fromAxisAndAngle( QVector3D( 1, 0, 0 ), -90 ) ); // flip map (x,y,z) to world (x,z,-y) + mMarkerEntity->addComponent( markerTransform ); } QgsRubberBand3D::~QgsRubberBand3D() @@ -167,7 +175,7 @@ void QgsRubberBand3D::updateGeometry() { QgsLineVertexData lineData; lineData.withAdjacency = true; - lineData.init( Qgis::AltitudeClamping::Absolute, Qgis::AltitudeBinding::Vertex, 0, Qgs3DRenderContext::fromMapSettings( mMapSettings ) ); + lineData.init( Qgis::AltitudeClamping::Absolute, Qgis::AltitudeBinding::Vertex, 0, Qgs3DRenderContext::fromMapSettings( mMapSettings ), mMapSettings->origin() ); lineData.addLineString( mLineString ); mPositionAttribute->buffer()->setData( lineData.createVertexBuffer() ); diff --git a/src/3d/qgsrulebased3drenderer.cpp b/src/3d/qgsrulebased3drenderer.cpp index 7afb11e6f1b5..cc0e1e51ed63 100644 --- a/src/3d/qgsrulebased3drenderer.cpp +++ b/src/3d/qgsrulebased3drenderer.cpp @@ -262,12 +262,12 @@ void QgsRuleBased3DRenderer::Rule::createHandlers( QgsVectorLayer *layer, QgsRul } -void QgsRuleBased3DRenderer::Rule::prepare( const Qgs3DRenderContext &context, QSet &attributeNames, QgsRuleBased3DRenderer::RuleToHandlerMap &handlers ) const +void QgsRuleBased3DRenderer::Rule::prepare( const Qgs3DRenderContext &context, QSet &attributeNames, const QgsVector3D &chunkOrigin, QgsRuleBased3DRenderer::RuleToHandlerMap &handlers ) const { if ( mSymbol ) { QgsFeature3DHandler *handler = handlers[this]; - if ( !handler->prepare( context, attributeNames ) ) + if ( !handler->prepare( context, attributeNames, chunkOrigin ) ) { handlers.remove( this ); delete handler; @@ -283,7 +283,7 @@ void QgsRuleBased3DRenderer::Rule::prepare( const Qgs3DRenderContext &context, Q // call recursively for ( Rule *rule : std::as_const( mChildren ) ) { - rule->prepare( context, attributeNames, handlers ); + rule->prepare( context, attributeNames, chunkOrigin, handlers ); } } diff --git a/src/3d/qgsrulebased3drenderer.h b/src/3d/qgsrulebased3drenderer.h index f1dbc32880ac..a6855f307b6f 100644 --- a/src/3d/qgsrulebased3drenderer.h +++ b/src/3d/qgsrulebased3drenderer.h @@ -242,7 +242,7 @@ class _3D_EXPORT QgsRuleBased3DRenderer : public QgsAbstractVectorLayer3DRendere * call prepare() on handlers and populate attributeNames * \note not available in Python bindings */ - void prepare( const Qgs3DRenderContext &context, QSet &attributeNames, RuleToHandlerMap &handlers ) const SIP_SKIP; + void prepare( const Qgs3DRenderContext &context, QSet &attributeNames, const QgsVector3D &chunkOrigin, RuleToHandlerMap &handlers ) const SIP_SKIP; /** * register individual features diff --git a/src/3d/qgsrulebasedchunkloader_p.cpp b/src/3d/qgsrulebasedchunkloader_p.cpp index 0fc3985e435b..60d8ce848b33 100644 --- a/src/3d/qgsrulebasedchunkloader_p.cpp +++ b/src/3d/qgsrulebasedchunkloader_p.cpp @@ -50,6 +50,12 @@ QgsRuleBasedChunkLoader::QgsRuleBasedChunkLoader( const QgsRuleBasedChunkLoaderF QgsVectorLayer *layer = mFactory->mLayer; + // only a subset of data to be queried + const QgsRectangle rect = Qgs3DUtils::worldToMapExtent( node->bbox(), mContext.origin() ); + // origin for coordinates of the chunk - it is kind of arbitrary, but it should be + // picked so that the coordinates are relatively small to avoid numerical precision issues + QgsVector3D chunkOrigin( rect.center().x(), rect.center().y(), 0 ); + QgsExpressionContext exprContext( Qgs3DUtils::globalProjectLayerExpressionContext( layer ) ); exprContext.setFields( layer->fields() ); mContext.setExpressionContext( exprContext ); @@ -63,15 +69,12 @@ QgsRuleBasedChunkLoader::QgsRuleBasedChunkLoader( const QgsRuleBasedChunkLoaderF mRootRule->createHandlers( layer, mHandlers ); QSet attributeNames; - mRootRule->prepare( mContext, attributeNames, mHandlers ); + mRootRule->prepare( mContext, attributeNames, chunkOrigin, mHandlers ); // build the feature request QgsFeatureRequest req; req.setDestinationCrs( mContext.crs(), mContext.transformContext() ); req.setSubsetOfAttributes( attributeNames, layer->fields() ); - - // only a subset of data to be queried - const QgsRectangle rect = Qgs3DUtils::worldToMapExtent( node->bbox(), mContext.origin() ); req.setFilterRect( rect ); // diff --git a/src/3d/qgstessellatedpolygongeometry.cpp b/src/3d/qgstessellatedpolygongeometry.cpp index 010a66e01a51..a233476aa042 100644 --- a/src/3d/qgstessellatedpolygongeometry.cpp +++ b/src/3d/qgstessellatedpolygongeometry.cpp @@ -82,42 +82,6 @@ QgsTessellatedPolygonGeometry::QgsTessellatedPolygonGeometry( bool _withNormals, } } -void QgsTessellatedPolygonGeometry::setPolygons( const QList &polygons, const QList &featureIds, const QgsPointXY &origin, float extrusionHeight, const QList &extrusionHeightPerPolygon ) -{ - Q_ASSERT( polygons.count() == featureIds.count() ); - mTriangleIndexStartingIndices.reserve( polygons.count() ); - mTriangleIndexFids.reserve( polygons.count() ); - - QgsTessellator tessellator( origin.x(), origin.y(), mWithNormals, mInvertNormals, mAddBackFaces, false, mAddTextureCoords ); - for ( int i = 0; i < polygons.count(); ++i ) - { - Q_ASSERT( tessellator.dataVerticesCount() % 3 == 0 ); - const uint startingTriangleIndex = static_cast( tessellator.dataVerticesCount() / 3 ); - mTriangleIndexStartingIndices.append( startingTriangleIndex ); - mTriangleIndexFids.append( featureIds[i] ); - - QgsPolygon *polygon = polygons.at( i ); - const float extr = extrusionHeightPerPolygon.isEmpty() ? extrusionHeight : extrusionHeightPerPolygon.at( i ); - tessellator.addPolygon( *polygon, extr ); - } - if ( !tessellator.error().isEmpty() ) - { - QgsMessageLog::logMessage( tessellator.error(), QObject::tr( "3D" ) ); - } - - qDeleteAll( polygons ); - - const QByteArray data( ( const char * )tessellator.data().constData(), tessellator.data().count() * sizeof( float ) ); - const int nVerts = data.count() / tessellator.stride(); - - mVertexBuffer->setData( data ); - mPositionAttribute->setCount( nVerts ); - if ( mNormalAttribute ) - mNormalAttribute->setCount( nVerts ); - if ( mAddTextureCoords ) - mTextureCoordsAttribute->setCount( nVerts ); -} - void QgsTessellatedPolygonGeometry::setData( const QByteArray &vertexBufferData, int vertexCount, const QVector &triangleIndexFids, const QVector &triangleIndexStartingIndices ) { mTriangleIndexStartingIndices = triangleIndexStartingIndices; diff --git a/src/3d/qgstessellatedpolygongeometry.h b/src/3d/qgstessellatedpolygongeometry.h index b2d8fa2007e2..20cb2cc9a7ad 100644 --- a/src/3d/qgstessellatedpolygongeometry.h +++ b/src/3d/qgstessellatedpolygongeometry.h @@ -91,9 +91,6 @@ class QgsTessellatedPolygonGeometry : public Qt3DCore::QGeometry */ void setAddTextureCoords( bool add ) { mAddTextureCoords = add; } - //! Initializes vertex buffer from given polygons. Takes ownership of passed polygon geometries - void setPolygons( const QList &polygons, const QList &featureIds, const QgsPointXY &origin, float extrusionHeight, const QList &extrusionHeightPerPolygon = QList() ); - /** * Initializes vertex buffer (and other members) from data that were already tessellated. * This is an alternative to setPolygons() - this method does not do any expensive work in the body. diff --git a/src/3d/qgsvectorlayerchunkloader_p.cpp b/src/3d/qgsvectorlayerchunkloader_p.cpp index 525fafd3bcaa..2de914cbc933 100644 --- a/src/3d/qgsvectorlayerchunkloader_p.cpp +++ b/src/3d/qgsvectorlayerchunkloader_p.cpp @@ -59,12 +59,18 @@ QgsVectorLayerChunkLoader::QgsVectorLayerChunkLoader( const QgsVectorLayerChunkL } mHandler.reset( handler ); + // only a subset of data to be queried + const QgsRectangle rect = Qgs3DUtils::worldToMapExtent( node->bbox(), mRenderContext.origin() ); + // origin for coordinates of the chunk - it is kind of arbitrary, but it should be + // picked so that the coordinates are relatively small to avoid numerical precision issues + QgsVector3D chunkOrigin( rect.center().x(), rect.center().y(), 0 ); + QgsExpressionContext exprContext( Qgs3DUtils::globalProjectLayerExpressionContext( layer ) ); exprContext.setFields( layer->fields() ); mRenderContext.setExpressionContext( exprContext ); QSet attributeNames; - if ( !mHandler->prepare( mRenderContext, attributeNames ) ) + if ( !mHandler->prepare( mRenderContext, attributeNames, chunkOrigin ) ) { QgsDebugError( QStringLiteral( "Failed to prepare 3D feature handler!" ) ); return; @@ -76,9 +82,6 @@ QgsVectorLayerChunkLoader::QgsVectorLayerChunkLoader( const QgsVectorLayerChunkL QgsCoordinateTransform( layer->crs3D(), mRenderContext.crs(), mRenderContext.transformContext() ) ); req.setSubsetOfAttributes( attributeNames, layer->fields() ); - - // only a subset of data to be queried - const QgsRectangle rect = Qgs3DUtils::worldToMapExtent( node->bbox(), mRenderContext.origin() ); req.setFilterRect( rect ); // diff --git a/src/3d/shaders/instanced.vert b/src/3d/shaders/instanced.vert index dc7994c30990..f0f5dfed8616 100644 --- a/src/3d/shaders/instanced.vert +++ b/src/3d/shaders/instanced.vert @@ -7,9 +7,9 @@ in vec3 pos; out vec3 worldPosition; out vec3 worldNormal; -uniform mat4 modelView; -uniform mat3 modelViewNormal; -uniform mat4 modelViewProjection; +uniform mat4 modelMatrix; +uniform mat3 modelNormalMatrix; +uniform mat4 mvp; uniform mat4 inst; // transform of individual object instance uniform mat4 instNormal; // should be mat3 but Qt3D only supports mat4... @@ -20,15 +20,26 @@ uniform mat4 instNormal; // should be mat3 but Qt3D only supports mat4... void main() { - // TODO: i think this is not entirely correct: the translation by "pos" works - // like this only because we assume that "inst" matrix only does translation/scale/rotation - // which all keep "w" set to 1. correctly we should use translation matrix... - vec4 offsetPos = inst * vec4(vertexPosition, 1.0) + vec4(pos, 0.0); + // vertexPosition uses XZ plane as the base plane, with Y going upwards + // and the coordinates are local to the object - worldNormal = normalize(mat3(instNormal) * vertexNormal); - worldPosition = vec3(offsetPos); + // first let's apply user defined transform for each object (translation, rotation, scaling) + vec3 vertexPositionObject = vec3(inst * vec4(vertexPosition, 1.0)); + vec3 vertexNormalObject = mat3(instNormal) * vertexNormal; - gl_Position = modelViewProjection * offsetPos; + // next let's flip axes, so we have XY plane as the base plane (like in map coordinates) + vertexPositionObject = vec3(vertexPositionObject.x, -vertexPositionObject.z, vertexPositionObject.y); + vertexNormalObject = vec3(vertexNormalObject.x, -vertexNormalObject.z, vertexNormalObject.y); + + // add offset of the object relative to the chunk's origin + vec3 vertexPositionChunk = vertexPositionObject + pos; + + // Transform position and normal to world space + worldPosition = vec3(modelMatrix * vec4(vertexPositionChunk, 1.0)); + worldNormal = normalize(modelNormalMatrix * vertexNormalObject); + + // Calculate vertex position in clip coordinates + gl_Position = mvp * vec4(vertexPositionChunk, 1.0); #ifdef CLIPPING setClipDistance(worldPosition); diff --git a/src/3d/symbols/qgsline3dsymbol_p.cpp b/src/3d/symbols/qgsline3dsymbol_p.cpp index 5a585d044d2b..26eecd4487ea 100644 --- a/src/3d/symbols/qgsline3dsymbol_p.cpp +++ b/src/3d/symbols/qgsline3dsymbol_p.cpp @@ -33,6 +33,7 @@ #include "qgsphongtexturedmaterialsettings.h" #include "qgsmessagelog.h" +#include #include #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) #include @@ -63,7 +64,7 @@ class QgsBufferedLine3DSymbolHandler : public QgsFeature3DHandler : mSymbol( static_cast< QgsLine3DSymbol *>( symbol->clone() ) ) , mSelectedIds( selectedIds ) {} - bool prepare( const Qgs3DRenderContext &context, QSet &attributeNames ) override; + bool prepare( const Qgs3DRenderContext &context, QSet &attributeNames, const QgsVector3D &chunkOrigin ) override; void processFeature( const QgsFeature &feature, const Qgs3DRenderContext &context ) override; void finalize( Qt3DCore::QEntity *parent, const Qgs3DRenderContext &context ) override; @@ -86,6 +87,9 @@ class QgsBufferedLine3DSymbolHandler : public QgsFeature3DHandler // inputs - generic QgsFeatureIds mSelectedIds; + //! origin (in the map coordinates) for output geometries (e.g. at the center of the chunk) + QgsVector3D mChunkOrigin; + // outputs LineData outNormal; //!< Features that are not selected LineData outSelected; //!< Features that are selected @@ -93,17 +97,19 @@ class QgsBufferedLine3DSymbolHandler : public QgsFeature3DHandler -bool QgsBufferedLine3DSymbolHandler::prepare( const Qgs3DRenderContext &context, QSet &attributeNames ) +bool QgsBufferedLine3DSymbolHandler::prepare( const Qgs3DRenderContext &, QSet &attributeNames, const QgsVector3D &chunkOrigin ) { Q_UNUSED( attributeNames ) + mChunkOrigin = chunkOrigin; + const QgsPhongTexturedMaterialSettings *texturedMaterialSettings = dynamic_cast< const QgsPhongTexturedMaterialSettings * >( mSymbol->materialSettings() ); - outNormal.tessellator.reset( new QgsTessellator( context.origin().x(), context.origin().y(), true, + outNormal.tessellator.reset( new QgsTessellator( chunkOrigin.x(), chunkOrigin.y(), true, false, false, false, texturedMaterialSettings ? texturedMaterialSettings->requiresTextureCoordinates() : false, 3, texturedMaterialSettings ? texturedMaterialSettings->textureRotation() : 0 ) ); - outSelected.tessellator.reset( new QgsTessellator( context.origin().x(), context.origin().y(), true, + outSelected.tessellator.reset( new QgsTessellator( chunkOrigin.x(), chunkOrigin.y(), true, false, false, false, texturedMaterialSettings ? texturedMaterialSettings->requiresTextureCoordinates() : false, 3, texturedMaterialSettings ? texturedMaterialSettings->textureRotation() : 0 ) ); @@ -217,10 +223,16 @@ void QgsBufferedLine3DSymbolHandler::makeEntity( Qt3DCore::QEntity *parent, cons Qt3DRender::QGeometryRenderer *renderer = new Qt3DRender::QGeometryRenderer; renderer->setGeometry( geometry ); + // add transform (our geometry has coordinates relative to mChunkOrigin) + Qt3DCore::QTransform *tr = new Qt3DCore::QTransform; + QVector3D nodeTranslation = ( mChunkOrigin - context.origin() ).toVector3D(); + tr->setTranslation( QVector3D( nodeTranslation.x(), nodeTranslation.z(), -nodeTranslation.y() ) ); + // make entity Qt3DCore::QEntity *entity = new Qt3DCore::QEntity; entity->addComponent( renderer ); entity->addComponent( mat ); + entity->addComponent( tr ); entity->setParent( parent ); if ( !selected ) @@ -243,7 +255,7 @@ class QgsThickLine3DSymbolHandler : public QgsFeature3DHandler { } - bool prepare( const Qgs3DRenderContext &context, QSet &attributeNames ) override; + bool prepare( const Qgs3DRenderContext &context, QSet &attributeNames, const QgsVector3D &chunkOrigin ) override; void processFeature( const QgsFeature &feature, const Qgs3DRenderContext &context ) override; void finalize( Qt3DCore::QEntity *parent, const Qgs3DRenderContext &context ) override; @@ -259,6 +271,9 @@ class QgsThickLine3DSymbolHandler : public QgsFeature3DHandler // inputs - generic QgsFeatureIds mSelectedIds; + //! origin (in the map coordinates) for output geometries (e.g. at the center of the chunk) + QgsVector3D mChunkOrigin; + // outputs QgsLineVertexData outNormal; //!< Features that are not selected QgsLineVertexData outSelected; //!< Features that are selected @@ -266,14 +281,16 @@ class QgsThickLine3DSymbolHandler : public QgsFeature3DHandler -bool QgsThickLine3DSymbolHandler::prepare( const Qgs3DRenderContext &context, QSet &attributeNames ) +bool QgsThickLine3DSymbolHandler::prepare( const Qgs3DRenderContext &context, QSet &attributeNames, const QgsVector3D &chunkOrigin ) { Q_UNUSED( attributeNames ) + mChunkOrigin = chunkOrigin; + outNormal.withAdjacency = true; outSelected.withAdjacency = true; - outNormal.init( mSymbol->altitudeClamping(), mSymbol->altitudeBinding(), mSymbol->offset(), context ); - outSelected.init( mSymbol->altitudeClamping(), mSymbol->altitudeBinding(), mSymbol->offset(), context ); + outNormal.init( mSymbol->altitudeClamping(), mSymbol->altitudeBinding(), mSymbol->offset(), context, chunkOrigin ); + outSelected.init( mSymbol->altitudeClamping(), mSymbol->altitudeBinding(), mSymbol->offset(), context, chunkOrigin ); QSet attrs = mSymbol->dataDefinedProperties().referencedFields( context.expressionContext() ); attributeNames.unite( attrs ); @@ -374,9 +391,16 @@ void QgsThickLine3DSymbolHandler::makeEntity( Qt3DCore::QEntity *parent, const Q renderer->setPrimitiveRestartEnabled( true ); renderer->setRestartIndexValue( 0 ); + // add transform (our geometry has coordinates relative to mChunkOrigin) + Qt3DCore::QTransform *tr = new Qt3DCore::QTransform; + tr->setRotation( QQuaternion::fromAxisAndAngle( QVector3D( 1, 0, 0 ), -90 ) ); // flip map (x,y,z) to world (x,z,-y) + QVector3D nodeTranslation = ( mChunkOrigin - context.origin() ).toVector3D(); + tr->setTranslation( QVector3D( nodeTranslation.x(), nodeTranslation.z(), -nodeTranslation.y() ) ); + // make entity entity->addComponent( renderer ); entity->addComponent( mat ); + entity->addComponent( tr ); entity->setParent( parent ); } diff --git a/src/3d/symbols/qgslinevertexdata_p.cpp b/src/3d/symbols/qgslinevertexdata_p.cpp index 2d51a95b9b65..ddf3daa18a5d 100644 --- a/src/3d/symbols/qgslinevertexdata_p.cpp +++ b/src/3d/symbols/qgslinevertexdata_p.cpp @@ -46,12 +46,13 @@ QgsLineVertexData::QgsLineVertexData() vertices << QVector3D(); } -void QgsLineVertexData::init( Qgis::AltitudeClamping clamping, Qgis::AltitudeBinding binding, float height, const Qgs3DRenderContext &context ) +void QgsLineVertexData::init( Qgis::AltitudeClamping clamping, Qgis::AltitudeBinding binding, float height, const Qgs3DRenderContext &context, const QgsVector3D &chunkOrigin ) { altClamping = clamping; altBinding = binding; baseHeight = height; renderContext = context; + origin = chunkOrigin; } QByteArray QgsLineVertexData::createVertexBuffer() @@ -135,9 +136,9 @@ void QgsLineVertexData::addLineString( const QgsLineString &lineString, float ex QgsPoint p = lineString.pointN( i ); float z = Qgs3DUtils::clampAltitude( p, altClamping, altBinding, baseHeight + extraHeightOffset, centroid, renderContext ); - vertices << QVector3D( static_cast< float >( p.x() - renderContext.origin().x() ), - z, - static_cast< float >( -( p.y() - renderContext.origin().y() ) ) ); + vertices << QVector3D( static_cast< float >( p.x() - origin.x() ), + static_cast< float >( p.y() - origin.y() ), + z ); indexes << vertices.count() - 1; } @@ -168,13 +169,13 @@ void QgsLineVertexData::addVerticalLines( const QgsLineString &lineString, float if ( withAdjacency ) indexes << vertices.count(); // add the following vertex (for adjacency) - vertices << QVector3D( static_cast< float >( p.x() - renderContext.origin().x() ), - z, - static_cast< float >( -( p.y() - renderContext.origin().y() ) ) ); + vertices << QVector3D( static_cast< float >( p.x() - origin.x() ), + static_cast< float >( p.y() - origin.y() ), + z ); indexes << vertices.count() - 1; - vertices << QVector3D( static_cast< float >( p.x() - renderContext.origin().x() ), - z2, - static_cast< float >( -( p.y() - renderContext.origin().y() ) ) ); + vertices << QVector3D( static_cast< float >( p.x() - origin.x() ), + static_cast< float >( p.y() - origin.y() ), + z2 ); indexes << vertices.count() - 1; if ( withAdjacency ) diff --git a/src/3d/symbols/qgslinevertexdata_p.h b/src/3d/symbols/qgslinevertexdata_p.h index f91b2e73028d..8710ceb2cc3b 100644 --- a/src/3d/symbols/qgslinevertexdata_p.h +++ b/src/3d/symbols/qgslinevertexdata_p.h @@ -80,11 +80,12 @@ struct QgsLineVertexData Qgis::AltitudeClamping altClamping = Qgis::AltitudeClamping::Relative; Qgis::AltitudeBinding altBinding = Qgis::AltitudeBinding::Vertex; float baseHeight = 0; - Qgs3DRenderContext renderContext; + Qgs3DRenderContext renderContext; // used for altitude clamping + QgsVector3D origin; // all coordinates are relative to this origin (e.g. center of the chunk) QgsLineVertexData(); - void init( Qgis::AltitudeClamping clamping, Qgis::AltitudeBinding binding, float height, const Qgs3DRenderContext &renderContext ); + void init( Qgis::AltitudeClamping clamping, Qgis::AltitudeBinding binding, float height, const Qgs3DRenderContext &renderContext, const QgsVector3D &chunkOrigin ); QByteArray createVertexBuffer(); QByteArray createIndexBuffer(); diff --git a/src/3d/symbols/qgspoint3dsymbol.cpp b/src/3d/symbols/qgspoint3dsymbol.cpp index f4e60b269520..3d7bb44f6a57 100644 --- a/src/3d/symbols/qgspoint3dsymbol.cpp +++ b/src/3d/symbols/qgspoint3dsymbol.cpp @@ -272,12 +272,9 @@ QVariant QgsPoint3DSymbol::shapeProperty( const QString &property ) const return mShapeProperties.value( property ); } -QMatrix4x4 QgsPoint3DSymbol::billboardTransform() const +float QgsPoint3DSymbol::billboardHeight() const { - QMatrix4x4 billboardTransformMatrix; - billboardTransformMatrix.translate( QVector3D( 0, mTransform.data()[13], 0 ) ); - - return billboardTransformMatrix; + return mTransform.data()[13]; } QgsAbstractMaterialSettings *QgsPoint3DSymbol::materialSettings() const diff --git a/src/3d/symbols/qgspoint3dsymbol.h b/src/3d/symbols/qgspoint3dsymbol.h index e4c6e5384e41..f002764f7e7d 100644 --- a/src/3d/symbols/qgspoint3dsymbol.h +++ b/src/3d/symbols/qgspoint3dsymbol.h @@ -164,8 +164,8 @@ class _3D_EXPORT QgsPoint3DSymbol : public QgsAbstract3DSymbol SIP_NODEFAULTCTOR //! Sets transform for individual objects represented by the symbol void setTransform( const QMatrix4x4 &transform ) { mTransform = transform; } - //! Returns transform for billboards - QMatrix4x4 billboardTransform() const; + //! Returns how much the billboard should be elevated upwards + float billboardHeight() const; /** * Exports the geometries contained within the hierarchy of entity. diff --git a/src/3d/symbols/qgspoint3dsymbol_p.cpp b/src/3d/symbols/qgspoint3dsymbol_p.cpp index 92124999656a..56ded96a7da3 100644 --- a/src/3d/symbols/qgspoint3dsymbol_p.cpp +++ b/src/3d/symbols/qgspoint3dsymbol_p.cpp @@ -77,7 +77,7 @@ class QgsInstancedPoint3DSymbolHandler : public QgsFeature3DHandler : mSymbol( static_cast< QgsPoint3DSymbol *>( symbol->clone() ) ) , mSelectedIds( selectedIds ) {} - bool prepare( const Qgs3DRenderContext &context, QSet &attributeNames ) override; + bool prepare( const Qgs3DRenderContext &context, QSet &attributeNames, const QgsVector3D &chunkOrigin ) override; void processFeature( const QgsFeature &feature, const Qgs3DRenderContext &context ) override; void finalize( Qt3DCore::QEntity *parent, const Qgs3DRenderContext &context ) override; @@ -100,16 +100,22 @@ class QgsInstancedPoint3DSymbolHandler : public QgsFeature3DHandler // inputs - generic QgsFeatureIds mSelectedIds; + //! origin (in the map coordinates) for output geometries (e.g. at the center of the chunk) + QgsVector3D mChunkOrigin; + // outputs PointData outNormal; //!< Features that are not selected PointData outSelected; //!< Features that are selected }; -bool QgsInstancedPoint3DSymbolHandler::prepare( const Qgs3DRenderContext &context, QSet &attributeNames ) +bool QgsInstancedPoint3DSymbolHandler::prepare( const Qgs3DRenderContext &context, QSet &attributeNames, const QgsVector3D &chunkOrigin ) { Q_UNUSED( context ) Q_UNUSED( attributeNames ) + + mChunkOrigin = chunkOrigin; + return true; } @@ -120,7 +126,7 @@ void QgsInstancedPoint3DSymbolHandler::processFeature( const QgsFeature &feature if ( feature.geometry().isNull() ) return; - Qgs3DUtils::extractPointPositions( feature, context, mSymbol->altitudeClamping(), out.positions ); + Qgs3DUtils::extractPointPositions( feature, context, mChunkOrigin, mSymbol->altitudeClamping(), out.positions ); mFeatureCount++; } @@ -207,10 +213,17 @@ void QgsInstancedPoint3DSymbolHandler::makeEntity( Qt3DCore::QEntity *parent, co materialContext.setSelectionColor( context.selectionColor() ); QgsMaterial *mat = material( mSymbol.get(), materialContext ); + // add transform (our geometry has coordinates relative to mChunkOrigin) + Qt3DCore::QTransform *tr = new Qt3DCore::QTransform; + tr->setRotation( QQuaternion::fromAxisAndAngle( QVector3D( 1, 0, 0 ), -90 ) ); // flip map (x,y,z) to world (x,z,-y) + QVector3D nodeTranslation = ( mChunkOrigin - context.origin() ).toVector3D(); + tr->setTranslation( QVector3D( nodeTranslation.x(), nodeTranslation.z(), -nodeTranslation.y() ) ); + // build the entity Qt3DCore::QEntity *entity = new Qt3DCore::QEntity; entity->addComponent( renderer( mSymbol.get(), out.positions ) ); entity->addComponent( mat ); + entity->addComponent( tr ); entity->setParent( parent ); // cppcheck wrongly believes entity will leak @@ -401,15 +414,15 @@ class QgsModelPoint3DSymbolHandler : public QgsFeature3DHandler : mSymbol( static_cast< QgsPoint3DSymbol * >( symbol->clone() ) ) , mSelectedIds( selectedIds ) {} - bool prepare( const Qgs3DRenderContext &context, QSet &attributeNames ) override; + bool prepare( const Qgs3DRenderContext &context, QSet &attributeNames, const QgsVector3D &chunkOrigin ) override; void processFeature( const QgsFeature &feature, const Qgs3DRenderContext &context ) override; void finalize( Qt3DCore::QEntity *parent, const Qgs3DRenderContext &context ) override; private: - static void addSceneEntities( const Qgs3DRenderContext &context, const QVector &positions, const QgsPoint3DSymbol *symbol, Qt3DCore::QEntity *parent ); - static void addMeshEntities( const Qgs3DRenderContext &context, const QVector &positions, const QgsPoint3DSymbol *symbol, Qt3DCore::QEntity *parent, bool are_selected ); - static Qt3DCore::QTransform *transform( QVector3D position, const QgsPoint3DSymbol *symbol ); + static void addSceneEntities( const Qgs3DRenderContext &context, const QVector &positions, const QgsVector3D &chunkOrigin, const QgsPoint3DSymbol *symbol, Qt3DCore::QEntity *parent ); + static void addMeshEntities( const Qgs3DRenderContext &context, const QVector &positions, const QgsVector3D &chunkOrigin, const QgsPoint3DSymbol *symbol, Qt3DCore::QEntity *parent, bool are_selected ); + static Qt3DCore::QTransform *transform( QVector3D position, const QgsPoint3DSymbol *symbol, const QgsVector3D &chunkOrigin, const QgsVector3D &contextOrigin ); //! temporary data we will pass to the tessellator struct PointData @@ -424,15 +437,21 @@ class QgsModelPoint3DSymbolHandler : public QgsFeature3DHandler // inputs - generic QgsFeatureIds mSelectedIds; + //! origin (in the map coordinates) for output geometries (e.g. at the center of the chunk) + QgsVector3D mChunkOrigin; + // outputs PointData outNormal; //!< Features that are not selected PointData outSelected; //!< Features that are selected }; -bool QgsModelPoint3DSymbolHandler::prepare( const Qgs3DRenderContext &context, QSet &attributeNames ) +bool QgsModelPoint3DSymbolHandler::prepare( const Qgs3DRenderContext &context, QSet &attributeNames, const QgsVector3D &chunkOrigin ) { Q_UNUSED( context ) Q_UNUSED( attributeNames ) + + mChunkOrigin = chunkOrigin; + return true; } @@ -443,7 +462,7 @@ void QgsModelPoint3DSymbolHandler::processFeature( const QgsFeature &feature, co if ( feature.geometry().isNull() ) return; - Qgs3DUtils::extractPointPositions( feature, context, mSymbol->altitudeClamping(), out.positions ); + Qgs3DUtils::extractPointPositions( feature, context, mChunkOrigin, mSymbol->altitudeClamping(), out.positions ); mFeatureCount++; } @@ -465,7 +484,7 @@ void QgsModelPoint3DSymbolHandler::makeEntity( Qt3DCore::QEntity *parent, const { if ( selected ) { - addMeshEntities( context, out.positions, mSymbol.get(), parent, true ); + addMeshEntities( context, out.positions, mChunkOrigin, mSymbol.get(), parent, true ); } else { @@ -473,18 +492,18 @@ void QgsModelPoint3DSymbolHandler::makeEntity( Qt3DCore::QEntity *parent, const if ( mSymbol->shapeProperty( QStringLiteral( "overwriteMaterial" ) ).toBool() || ( mSymbol->materialSettings() && mSymbol->materialSettings()->type() != QLatin1String( "null" ) ) ) { - addMeshEntities( context, out.positions, mSymbol.get(), parent, false ); + addMeshEntities( context, out.positions, mChunkOrigin, mSymbol.get(), parent, false ); } else { - addSceneEntities( context, out.positions, mSymbol.get(), parent ); + addSceneEntities( context, out.positions, mChunkOrigin, mSymbol.get(), parent ); } } } -void QgsModelPoint3DSymbolHandler::addSceneEntities( const Qgs3DRenderContext &, const QVector &positions, const QgsPoint3DSymbol *symbol, Qt3DCore::QEntity *parent ) +void QgsModelPoint3DSymbolHandler::addSceneEntities( const Qgs3DRenderContext &context, const QVector &positions, const QgsVector3D &chunkOrigin, const QgsPoint3DSymbol *symbol, Qt3DCore::QEntity *parent ) { for ( const QVector3D &position : positions ) { @@ -500,7 +519,7 @@ void QgsModelPoint3DSymbolHandler::addSceneEntities( const Qgs3DRenderContext &, modelLoader->setSource( url ); entity->addComponent( modelLoader ); - entity->addComponent( transform( position, symbol ) ); + entity->addComponent( transform( position, symbol, chunkOrigin, context.origin() ) ); entity->setParent( parent ); // cppcheck wrongly believes entity will leak @@ -509,7 +528,7 @@ void QgsModelPoint3DSymbolHandler::addSceneEntities( const Qgs3DRenderContext &, } } -void QgsModelPoint3DSymbolHandler::addMeshEntities( const Qgs3DRenderContext &context, const QVector &positions, const QgsPoint3DSymbol *symbol, Qt3DCore::QEntity *parent, bool are_selected ) +void QgsModelPoint3DSymbolHandler::addMeshEntities( const Qgs3DRenderContext &context, const QVector &positions, const QgsVector3D &chunkOrigin, const QgsPoint3DSymbol *symbol, Qt3DCore::QEntity *parent, bool are_selected ) { if ( positions.empty() ) return; @@ -535,7 +554,7 @@ void QgsModelPoint3DSymbolHandler::addMeshEntities( const Qgs3DRenderContext &co entity->addComponent( mesh ); entity->addComponent( mat ); - entity->addComponent( transform( position, symbol ) ); + entity->addComponent( transform( position, symbol, chunkOrigin, context.origin() ) ); entity->setParent( parent ); // cppcheck wrongly believes entity will leak @@ -544,11 +563,15 @@ void QgsModelPoint3DSymbolHandler::addMeshEntities( const Qgs3DRenderContext &co } } -Qt3DCore::QTransform *QgsModelPoint3DSymbolHandler::transform( QVector3D position, const QgsPoint3DSymbol *symbol ) +Qt3DCore::QTransform *QgsModelPoint3DSymbolHandler::transform( QVector3D position, const QgsPoint3DSymbol *symbol, const QgsVector3D &chunkOrigin, const QgsVector3D &contextOrigin ) { Qt3DCore::QTransform *tr = new Qt3DCore::QTransform; tr->setMatrix( symbol->transform() ); - tr->setTranslation( position + tr->translation() ); + // position is relative to chunkOrigin + QVector3D nodeTranslation = ( chunkOrigin - contextOrigin ).toVector3D(); + tr->setTranslation( tr->translation() + + QVector3D( position.x(), position.z(), -position.y() ) + + QVector3D( nodeTranslation.x(), nodeTranslation.z(), -nodeTranslation.y() ) ); return tr; } @@ -563,7 +586,7 @@ class QgsPoint3DBillboardSymbolHandler : public QgsFeature3DHandler : mSymbol( static_cast< QgsPoint3DSymbol * >( symbol->clone() ) ) , mSelectedIds( selectedIds ) {} - bool prepare( const Qgs3DRenderContext &context, QSet &attributeNames ) override; + bool prepare( const Qgs3DRenderContext &context, QSet &attributeNames, const QgsVector3D &chunkOrigin ) override; void processFeature( const QgsFeature &feature, const Qgs3DRenderContext &context ) override; void finalize( Qt3DCore::QEntity *parent, const Qgs3DRenderContext &context ) override; @@ -582,15 +605,21 @@ class QgsPoint3DBillboardSymbolHandler : public QgsFeature3DHandler // inputs - generic QgsFeatureIds mSelectedIds; + //! origin (in the map coordinates) for output geometries (e.g. at the center of the chunk) + QgsVector3D mChunkOrigin; + // outputs PointData outNormal; //!< Features that are not selected PointData outSelected; //!< Features that are selected }; -bool QgsPoint3DBillboardSymbolHandler::prepare( const Qgs3DRenderContext &context, QSet &attributeNames ) +bool QgsPoint3DBillboardSymbolHandler::prepare( const Qgs3DRenderContext &context, QSet &attributeNames, const QgsVector3D &chunkOrigin ) { Q_UNUSED( context ) Q_UNUSED( attributeNames ) + + mChunkOrigin = chunkOrigin; + return true; } @@ -601,7 +630,7 @@ void QgsPoint3DBillboardSymbolHandler::processFeature( const QgsFeature &feature if ( feature.geometry().isNull() ) return; - Qgs3DUtils::extractPointPositions( feature, context, mSymbol->altitudeClamping(), out.positions ); + Qgs3DUtils::extractPointPositions( feature, context, mChunkOrigin, mSymbol->altitudeClamping(), out.positions ); mFeatureCount++; } @@ -646,7 +675,11 @@ void QgsPoint3DBillboardSymbolHandler::makeEntity( Qt3DCore::QEntity *parent, co // Billboard Transform Qt3DCore::QTransform *billboardTransform = new Qt3DCore::QTransform(); - billboardTransform->setMatrix( mSymbol->billboardTransform() ); + billboardTransform->setRotation( QQuaternion::fromAxisAndAngle( QVector3D( 1, 0, 0 ), -90 ) ); // flip map (x,y,z) to world (x,z,-y) + QVector3D billboardHeightTranslation( 0, mSymbol->billboardHeight(), 0 ); + // our geometry has coordinates relative to mChunkOrigin + QVector3D nodeTranslation = ( mChunkOrigin - context.origin() ).toVector3D(); + billboardTransform->setTranslation( billboardHeightTranslation + QVector3D( nodeTranslation.x(), nodeTranslation.z(), -nodeTranslation.y() ) ); // Build the entity Qt3DCore::QEntity *entity = new Qt3DCore::QEntity; diff --git a/src/3d/symbols/qgspolygon3dsymbol_p.cpp b/src/3d/symbols/qgspolygon3dsymbol_p.cpp index 68e7ea2139c1..0ada126d3cad 100644 --- a/src/3d/symbols/qgspolygon3dsymbol_p.cpp +++ b/src/3d/symbols/qgspolygon3dsymbol_p.cpp @@ -54,7 +54,7 @@ class QgsPolygon3DSymbolHandler : public QgsFeature3DHandler : mSymbol( static_cast< QgsPolygon3DSymbol *>( symbol->clone() ) ) , mSelectedIds( selectedIds ) {} - bool prepare( const Qgs3DRenderContext &context, QSet &attributeNames ) override; + bool prepare( const Qgs3DRenderContext &context, QSet &attributeNames, const QgsVector3D &chunkOrigin ) override; void processFeature( const QgsFeature &f, const Qgs3DRenderContext &context ) override; void finalize( Qt3DCore::QEntity *parent, const Qgs3DRenderContext &context ) override; @@ -79,6 +79,9 @@ class QgsPolygon3DSymbolHandler : public QgsFeature3DHandler // inputs - generic QgsFeatureIds mSelectedIds; + //! origin (in the map coordinates) for output geometries (e.g. at the center of the chunk) + QgsVector3D mChunkOrigin; + // outputs PolygonData outNormal; //!< Features that are not selected PolygonData outSelected; //!< Features that are selected @@ -87,18 +90,20 @@ class QgsPolygon3DSymbolHandler : public QgsFeature3DHandler }; -bool QgsPolygon3DSymbolHandler::prepare( const Qgs3DRenderContext &context, QSet &attributeNames ) +bool QgsPolygon3DSymbolHandler::prepare( const Qgs3DRenderContext &context, QSet &attributeNames, const QgsVector3D &chunkOrigin ) { outEdges.withAdjacency = true; - outEdges.init( mSymbol->altitudeClamping(), mSymbol->altitudeBinding(), 0, context ); + outEdges.init( mSymbol->altitudeClamping(), mSymbol->altitudeBinding(), 0, context, chunkOrigin ); + + mChunkOrigin = chunkOrigin; const QgsPhongTexturedMaterialSettings *texturedMaterialSettings = dynamic_cast< const QgsPhongTexturedMaterialSettings * >( mSymbol->materialSettings() ); - outNormal.tessellator.reset( new QgsTessellator( context.origin().x(), context.origin().y(), true, mSymbol->invertNormals(), mSymbol->addBackFaces(), false, + outNormal.tessellator.reset( new QgsTessellator( chunkOrigin.x(), chunkOrigin.y(), true, mSymbol->invertNormals(), mSymbol->addBackFaces(), false, texturedMaterialSettings && texturedMaterialSettings->requiresTextureCoordinates(), mSymbol->renderedFacade(), texturedMaterialSettings ? texturedMaterialSettings->textureRotation() : 0 ) ); - outSelected.tessellator.reset( new QgsTessellator( context.origin().x(), context.origin().y(), true, mSymbol->invertNormals(), + outSelected.tessellator.reset( new QgsTessellator( chunkOrigin.x(), chunkOrigin.y(), true, mSymbol->invertNormals(), mSymbol->addBackFaces(), false, texturedMaterialSettings && texturedMaterialSettings->requiresTextureCoordinates(), mSymbol->renderedFacade(), @@ -253,9 +258,16 @@ void QgsPolygon3DSymbolHandler::finalize( Qt3DCore::QEntity *parent, const Qgs3D renderer->setPrimitiveRestartEnabled( true ); renderer->setRestartIndexValue( 0 ); + // add transform (our geometry has coordinates relative to mChunkOrigin) + Qt3DCore::QTransform *tr = new Qt3DCore::QTransform; + tr->setRotation( QQuaternion::fromAxisAndAngle( QVector3D( 1, 0, 0 ), -90 ) ); // flip map (x,y,z) to world (x,z,-y) + QVector3D nodeTranslation = ( mChunkOrigin - context.origin() ).toVector3D(); + tr->setTranslation( QVector3D( nodeTranslation.x(), nodeTranslation.z(), -nodeTranslation.y() ) ); + // make entity entity->addComponent( renderer ); entity->addComponent( mat ); + entity->addComponent( tr ); entity->setParent( parent ); } } @@ -285,11 +297,17 @@ void QgsPolygon3DSymbolHandler::makeEntity( Qt3DCore::QEntity *parent, const Qgs Qt3DRender::QGeometryRenderer *renderer = new Qt3DRender::QGeometryRenderer; renderer->setGeometry( geometry ); + // add transform (our geometry has coordinates relative to mChunkOrigin) + Qt3DCore::QTransform *tr = new Qt3DCore::QTransform; + QVector3D nodeTranslation = ( mChunkOrigin - context.origin() ).toVector3D(); + tr->setTranslation( QVector3D( nodeTranslation.x(), nodeTranslation.z(), -nodeTranslation.y() ) ); + // make entity Qt3DCore::QEntity *entity = new Qt3DCore::QEntity; entity->setObjectName( parent->objectName() + "_CHUNK_MESH" ); entity->addComponent( renderer ); entity->addComponent( mat ); + entity->addComponent( tr ); entity->setParent( parent ); if ( !selected ) diff --git a/tests/src/3d/testqgs3drendering.cpp b/tests/src/3d/testqgs3drendering.cpp index 79bd8d8e0717..4998808d3014 100644 --- a/tests/src/3d/testqgs3drendering.cpp +++ b/tests/src/3d/testqgs3drendering.cpp @@ -554,6 +554,7 @@ void TestQgs3DRendering::testExtrudedPolygonsTexturedPhong() materialSettings.setSpecular( QColor( 10, 10, 10 ) ); materialSettings.setShininess( 1.0 ); materialSettings.setDiffuseTexturePath( testDataPath( "/sample_image.png" ) ); + materialSettings.setTextureScale( 0.05 ); QgsPolygon3DSymbol *symbol3d = new QgsPolygon3DSymbol; symbol3d->setMaterialSettings( materialSettings.clone() ); symbol3d->setExtrusionHeight( 10.f ); @@ -869,7 +870,7 @@ void TestQgs3DRendering::testExtrudedPolygonsGoochShading() delete scene; delete map; - QGSVERIFYIMAGECHECK( "polygon3d_extrusion_gooch_shading", "polygon3d_extrusion_gooch_shading", img, QString(), 40, QSize( 0, 0 ), 2 ); + QGSVERIFYIMAGECHECK( "polygon3d_extrusion_gooch_shading", "polygon3d_extrusion_gooch_shading", img, QString(), 50, QSize( 0, 0 ), 2 ); } void TestQgs3DRendering::testExtrudedPolygonsMetalRoughShading() diff --git a/tests/testdata/control_files/3d/expected_big_scene_export/expected_big_scene_export-2.obj b/tests/testdata/control_files/3d/expected_big_scene_export/expected_big_scene_export-2.obj index 099ce35f7906..6c872577d83c 100644 --- a/tests/testdata/control_files/3d/expected_big_scene_export/expected_big_scene_export-2.obj +++ b/tests/testdata/control_files/3d/expected_big_scene_export/expected_big_scene_export-2.obj @@ -542,29 +542,29 @@ vn 0 1 0 v -0.0224 -0.048 0.197 vn 0 1 0 v -0.0297 -0.048 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.026 -0.048 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.0297 -0.0534 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.0297 -0.0534 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.026 -0.048 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.026 -0.0534 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.026 -0.048 0.193 -vn 1 0 0.00114 +vn 1 0 0.00115 v -0.026 -0.048 0.197 -vn 1 0 0.00114 +vn 1 0 0.00115 v -0.026 -0.0534 0.193 -vn 1 0 0.00114 +vn 1 0 0.00115 v -0.026 -0.0534 0.193 -vn 1 0 0.00114 +vn 1 0 0.00115 v -0.026 -0.048 0.197 -vn 1 0 0.00114 +vn 1 0 0.00115 v -0.026 -0.0534 0.197 -vn 1 0 0.00114 +vn 1 0 0.00115 v -0.026 -0.048 0.197 vn 0.0015 0 -1 v -0.0224 -0.048 0.197 @@ -578,17 +578,17 @@ vn 0.0015 0 -1 v -0.0224 -0.0534 0.197 vn 0.0015 0 -1 v -0.0224 -0.048 0.197 -vn 1 0 0.00144 +vn 1 0 0.00145 v -0.0224 -0.048 0.201 -vn 1 0 0.00144 +vn 1 0 0.00145 v -0.0224 -0.0534 0.197 -vn 1 0 0.00144 +vn 1 0 0.00145 v -0.0224 -0.0534 0.197 -vn 1 0 0.00144 +vn 1 0 0.00145 v -0.0224 -0.048 0.201 -vn 1 0 0.00144 +vn 1 0 0.00145 v -0.0224 -0.0534 0.201 -vn 1 0 0.00144 +vn 1 0 0.00145 v -0.0224 -0.048 0.201 vn -0.00121 0 1 v -0.0285 -0.048 0.201 @@ -614,29 +614,29 @@ vn -1 0 -0.000812 v -0.0285 -0.0534 0.196 vn -1 0 -0.000812 v -0.0285 -0.048 0.196 -vn -0.000612 0 1 +vn -0.000609 0 1 v -0.0297 -0.048 0.196 -vn -0.000612 0 1 +vn -0.000609 0 1 v -0.0285 -0.0534 0.196 -vn -0.000612 0 1 +vn -0.000609 0 1 v -0.0285 -0.0534 0.196 -vn -0.000612 0 1 +vn -0.000609 0 1 v -0.0297 -0.048 0.196 -vn -0.000612 0 1 +vn -0.000609 0 1 v -0.0297 -0.0534 0.196 -vn -0.000612 0 1 +vn -0.000609 0 1 v -0.0297 -0.048 0.196 -vn -1 0 -0.00092 +vn -1 0 -0.000921 v -0.0297 -0.048 0.193 -vn -1 0 -0.00092 +vn -1 0 -0.000921 v -0.0297 -0.0534 0.196 -vn -1 0 -0.00092 +vn -1 0 -0.000921 v -0.0297 -0.0534 0.196 -vn -1 0 -0.00092 +vn -1 0 -0.000921 v -0.0297 -0.048 0.193 -vn -1 0 -0.00092 +vn -1 0 -0.000921 v -0.0297 -0.0534 0.193 -vn -1 0 -0.00092 +vn -1 0 -0.000921 v -0.0338 -0.0496 0.197 vn 0 1 0 v -0.0374 -0.0496 0.197 @@ -674,17 +674,17 @@ vn 0 1 0 v -0.0297 -0.0496 0.193 vn 0 1 0 v -0.0297 -0.0496 0.193 -vn 1 0 0.00092 +vn 1 0 0.000921 v -0.0297 -0.0496 0.196 -vn 1 0 0.00092 +vn 1 0 0.000921 v -0.0297 -0.0551 0.193 -vn 1 0 0.00092 +vn 1 0 0.000921 v -0.0297 -0.0551 0.193 -vn 1 0 0.00092 +vn 1 0 0.000921 v -0.0297 -0.0496 0.196 -vn 1 0 0.00092 +vn 1 0 0.000921 v -0.0297 -0.0551 0.196 -vn 1 0 0.00092 +vn 1 0 0.000921 v -0.0297 -0.0496 0.196 vn -0.00321 0 1 v -0.0313 -0.0496 0.196 @@ -722,29 +722,29 @@ vn -0.00126 0 1 v -0.0374 -0.0551 0.201 vn -0.00126 0 1 v -0.0374 -0.0496 0.201 -vn -1 0 -0.000968 +vn -1 0 -0.00097 v -0.0374 -0.0496 0.197 -vn -1 0 -0.000968 +vn -1 0 -0.00097 v -0.0374 -0.0551 0.201 -vn -1 0 -0.000968 +vn -1 0 -0.00097 v -0.0374 -0.0551 0.201 -vn -1 0 -0.000968 +vn -1 0 -0.00097 v -0.0374 -0.0496 0.197 -vn -1 0 -0.000968 +vn -1 0 -0.00097 v -0.0374 -0.0551 0.197 -vn -1 0 -0.000968 +vn -1 0 -0.00097 v -0.0374 -0.0496 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0338 -0.0496 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0374 -0.0551 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0374 -0.0551 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0338 -0.0496 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0338 -0.0551 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0338 -0.0496 0.197 vn -1 0 -0.00115 v -0.0338 -0.0496 0.193 @@ -758,17 +758,17 @@ vn -1 0 -0.00115 v -0.0338 -0.0551 0.193 vn -1 0 -0.00115 v -0.0338 -0.0496 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0297 -0.0496 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0338 -0.0551 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0338 -0.0551 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0297 -0.0496 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0297 -0.0551 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0524 -0.0529 0.201 vn 0 1 0 v -0.0524 -0.0529 0.207 @@ -794,17 +794,17 @@ vn 0 1 0 v -0.044 -0.0529 0.204 vn 0 1 0 v -0.0524 -0.0529 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0485 -0.0529 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0524 -0.0583 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0524 -0.0583 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0485 -0.0529 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0485 -0.0583 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0485 -0.0529 0.201 vn 1 0 0.0011 v -0.0485 -0.0529 0.204 @@ -842,29 +842,29 @@ vn 1 0 0.00162 v -0.044 -0.0583 0.207 vn 1 0 0.00162 v -0.044 -0.0529 0.207 -vn -0.000634 0 1 +vn -0.000635 0 1 v -0.0524 -0.0529 0.207 -vn -0.000634 0 1 +vn -0.000635 0 1 v -0.044 -0.0583 0.207 -vn -0.000634 0 1 +vn -0.000635 0 1 v -0.044 -0.0583 0.207 -vn -0.000634 0 1 +vn -0.000635 0 1 v -0.0524 -0.0529 0.207 -vn -0.000634 0 1 +vn -0.000635 0 1 v -0.0524 -0.0583 0.207 -vn -0.000634 0 1 +vn -0.000635 0 1 v -0.0524 -0.0529 0.207 -vn -1 0 -0.00134 +vn -1 0 -0.00135 v -0.0524 -0.0529 0.201 -vn -1 0 -0.00134 +vn -1 0 -0.00135 v -0.0524 -0.0583 0.207 -vn -1 0 -0.00134 +vn -1 0 -0.00135 v -0.0524 -0.0583 0.207 -vn -1 0 -0.00134 +vn -1 0 -0.00135 v -0.0524 -0.0529 0.201 -vn -1 0 -0.00134 +vn -1 0 -0.00135 v -0.0524 -0.0583 0.201 -vn -1 0 -0.00134 +vn -1 0 -0.00135 v -0.0514 -0.0513 0.196 vn 0 1 0 v -0.0524 -0.0513 0.196 @@ -1052,17 +1052,17 @@ vn 0 1 0 v -0.0463 -0.0513 0.186 vn 0 1 0 v -0.0513 -0.0513 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0499 -0.0513 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0513 -0.0567 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0513 -0.0567 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0499 -0.0513 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0499 -0.0567 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0499 -0.0513 0.182 vn -0.0182 0 -1 v -0.0464 -0.0513 0.182 @@ -1286,17 +1286,17 @@ vn -0.0137 0 1 v -0.0331 -0.0534 0.186 vn -0.0137 0 1 v -0.0331 -0.048 0.186 -vn -1 0 0.00109 +vn -1 0 0.0011 v -0.0331 -0.048 0.184 -vn -1 0 0.00109 +vn -1 0 0.0011 v -0.0331 -0.0534 0.186 -vn -1 0 0.00109 +vn -1 0 0.0011 v -0.0331 -0.0534 0.186 -vn -1 0 0.00109 +vn -1 0 0.0011 v -0.0331 -0.048 0.184 -vn -1 0 0.00109 +vn -1 0 0.0011 v -0.0331 -0.0534 0.184 -vn -1 0 0.00109 +vn -1 0 0.0011 v -0.0331 -0.048 0.184 vn -0.026 0 -1 v -0.0319 -0.048 0.184 @@ -1718,17 +1718,17 @@ vn 0 1 0 v -0.0361 -0.048 0.17 vn 0 1 0 v -0.0393 -0.048 0.165 -vn 0.00537 0 -1 +vn 0.00538 0 -1 v -0.0362 -0.048 0.165 -vn 0.00537 0 -1 +vn 0.00538 0 -1 v -0.0393 -0.0534 0.165 -vn 0.00537 0 -1 +vn 0.00538 0 -1 v -0.0393 -0.0534 0.165 -vn 0.00537 0 -1 +vn 0.00538 0 -1 v -0.0362 -0.048 0.165 -vn 0.00537 0 -1 +vn 0.00538 0 -1 v -0.0362 -0.0534 0.165 -vn 0.00537 0 -1 +vn 0.00538 0 -1 v -0.0362 -0.048 0.165 vn 1 0 -0.0167 v -0.0361 -0.048 0.17 @@ -1742,17 +1742,17 @@ vn 1 0 -0.0167 v -0.0361 -0.0534 0.17 vn 1 0 -0.0167 v -0.0361 -0.048 0.17 -vn -0.00537 0 1 +vn -0.00538 0 1 v -0.0392 -0.048 0.17 -vn -0.00537 0 1 +vn -0.00538 0 1 v -0.0361 -0.0534 0.17 -vn -0.00537 0 1 +vn -0.00538 0 1 v -0.0361 -0.0534 0.17 -vn -0.00537 0 1 +vn -0.00538 0 1 v -0.0392 -0.048 0.17 -vn -0.00537 0 1 +vn -0.00538 0 1 v -0.0392 -0.0534 0.17 -vn -0.00537 0 1 +vn -0.00538 0 1 v -0.0392 -0.048 0.17 vn -1 0 0.0167 v -0.0393 -0.048 0.165 @@ -1838,17 +1838,17 @@ vn 0 1 0 v -0.0423 -0.048 0.17 vn 0 1 0 v -0.0453 -0.048 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0424 -0.048 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0453 -0.0534 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0453 -0.0534 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0424 -0.048 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0424 -0.0534 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0424 -0.048 0.165 vn 1 0 -0.0167 v -0.0423 -0.048 0.17 @@ -1862,17 +1862,17 @@ vn 1 0 -0.0167 v -0.0423 -0.0534 0.17 vn 1 0 -0.0167 v -0.0423 -0.048 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0452 -0.048 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0423 -0.0534 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0423 -0.0534 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0452 -0.048 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0452 -0.0534 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0452 -0.048 0.17 vn -1 0 0.0167 v -0.0453 -0.048 0.165 @@ -2882,17 +2882,17 @@ vn -0.0308 0 1 v -0.237 -0.0502 0.15 vn -0.0308 0 1 v -0.237 -0.0447 0.15 -vn -1 0 -0.0302 +vn -1 0 -0.0301 v -0.237 -0.0447 0.147 -vn -1 0 -0.0302 +vn -1 0 -0.0301 v -0.237 -0.0502 0.15 -vn -1 0 -0.0302 +vn -1 0 -0.0301 v -0.237 -0.0502 0.15 -vn -1 0 -0.0302 +vn -1 0 -0.0301 v -0.237 -0.0447 0.147 -vn -1 0 -0.0302 +vn -1 0 -0.0301 v -0.237 -0.0502 0.147 -vn -1 0 -0.0302 +vn -1 0 -0.0301 v -0.141 -0.0447 0.109 vn 0 1 0 v -0.141 -0.0447 0.112 @@ -3104,17 +3104,17 @@ vn 0.0296 0 -1 v -0.237 -0.0502 0.147 vn 0.0296 0 -1 v -0.237 -0.0447 0.147 -vn 1 0 0.0302 +vn 1 0 0.0301 v -0.237 -0.0447 0.15 -vn 1 0 0.0302 +vn 1 0 0.0301 v -0.237 -0.0502 0.147 -vn 1 0 0.0302 +vn 1 0 0.0301 v -0.237 -0.0502 0.147 -vn 1 0 0.0302 +vn 1 0 0.0301 v -0.237 -0.0447 0.15 -vn 1 0 0.0302 +vn 1 0 0.0301 v -0.237 -0.0502 0.15 -vn 1 0 0.0302 +vn 1 0 0.0301 v -0.237 -0.0447 0.15 vn -0.0294 0 1 v -0.241 -0.0447 0.15 @@ -3740,17 +3740,17 @@ vn 0.0724 0 -0.997 v -0.153 -0.0583 0.144 vn 0.0724 0 -0.997 v -0.153 -0.0529 0.144 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0529 0.147 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0583 0.144 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0583 0.144 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0529 0.147 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0583 0.147 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0529 0.147 vn -0.088 0 0.996 v -0.172 -0.0529 0.146 @@ -3908,17 +3908,17 @@ vn 0.0399 0 -0.999 v -0.0875 -0.0583 0.151 vn 0.0399 0 -0.999 v -0.0875 -0.0529 0.151 -vn 0.999 0 0.0397 +vn 0.999 0 0.0398 v -0.0876 -0.0529 0.155 -vn 0.999 0 0.0397 +vn 0.999 0 0.0398 v -0.0875 -0.0583 0.151 -vn 0.999 0 0.0397 +vn 0.999 0 0.0398 v -0.0875 -0.0583 0.151 -vn 0.999 0 0.0397 +vn 0.999 0 0.0398 v -0.0876 -0.0529 0.155 -vn 0.999 0 0.0397 +vn 0.999 0 0.0398 v -0.0876 -0.0583 0.155 -vn 0.999 0 0.0397 +vn 0.999 0 0.0398 v -0.0876 -0.0529 0.155 vn -0.0399 0 0.999 v -0.0942 -0.0529 0.155 @@ -4196,17 +4196,17 @@ vn 0 1 0 v -0.188 -0.0496 0.16 vn 0 1 0 v -0.191 -0.0496 0.155 -vn -0.0199 0 -1 +vn -0.0198 0 -1 v -0.188 -0.0496 0.155 -vn -0.0199 0 -1 +vn -0.0198 0 -1 v -0.191 -0.0551 0.155 -vn -0.0199 0 -1 +vn -0.0198 0 -1 v -0.191 -0.0551 0.155 -vn -0.0199 0 -1 +vn -0.0198 0 -1 v -0.188 -0.0496 0.155 -vn -0.0199 0 -1 +vn -0.0198 0 -1 v -0.188 -0.0551 0.155 -vn -0.0199 0 -1 +vn -0.0198 0 -1 v -0.188 -0.0496 0.155 vn 1 0 -0.0206 v -0.188 -0.0496 0.16 @@ -4220,17 +4220,17 @@ vn 1 0 -0.0206 v -0.188 -0.0551 0.16 vn 1 0 -0.0206 v -0.188 -0.0496 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.191 -0.0496 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.188 -0.0551 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.188 -0.0551 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.191 -0.0496 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.191 -0.0551 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.191 -0.0496 0.16 vn -1 0 0.0206 v -0.191 -0.0496 0.155 @@ -4268,17 +4268,17 @@ vn -0.998 0 -0.0581 v -0.247 -0.0502 0.149 vn -0.998 0 -0.0581 v -0.247 -0.0447 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.245 -0.0447 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.247 -0.0502 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.247 -0.0502 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.245 -0.0447 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.245 -0.0502 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.245 -0.0447 0.149 vn 0.998 0 0.057 v -0.246 -0.0447 0.152 @@ -5708,29 +5708,29 @@ vn -0.0144 0 -1 v -0.301 -0.0583 0.141 vn -0.0144 0 -1 v -0.301 -0.0529 0.141 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0529 0.145 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0583 0.141 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0583 0.141 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0529 0.145 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0583 0.145 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0529 0.145 -vn 0.00049 0 1 +vn 0.000497 0 1 v -0.302 -0.0529 0.145 -vn 0.00049 0 1 +vn 0.000497 0 1 v -0.301 -0.0583 0.145 -vn 0.00049 0 1 +vn 0.000497 0 1 v -0.301 -0.0583 0.145 -vn 0.00049 0 1 +vn 0.000497 0 1 v -0.302 -0.0529 0.145 -vn 0.00049 0 1 +vn 0.000497 0 1 v -0.302 -0.0583 0.145 -vn 0.00049 0 1 +vn 0.000497 0 1 v -0.302 -0.0529 0.145 vn 1 0 -0.0275 v -0.302 -0.0529 0.147 @@ -8246,17 +8246,17 @@ vn 0.474 0 -0.88 v -0.307 -0.0682 0.276 vn 0.474 0 -0.88 v -0.307 -0.0627 0.276 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.308 -0.0627 0.278 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.307 -0.0682 0.276 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.307 -0.0682 0.276 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.308 -0.0627 0.278 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.308 -0.0682 0.278 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.308 -0.0627 0.278 vn 0.883 0 0.47 v -0.309 -0.0627 0.28 @@ -8462,17 +8462,17 @@ vn 0.879 0 0.476 v -0.291 -0.0714 0.29 vn 0.879 0 0.476 v -0.291 -0.066 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.292 -0.066 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.291 -0.0714 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.291 -0.0714 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.292 -0.066 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.292 -0.0714 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.292 -0.066 0.29 vn -0.474 0 0.88 v -0.294 -0.066 0.289 @@ -8690,17 +8690,17 @@ vn 0.471 0 -0.882 v -0.285 -0.0714 0.289 vn 0.471 0 -0.882 v -0.285 -0.066 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.066 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.0714 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.0714 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.066 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.0714 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.066 0.289 vn 0.475 0 -0.88 v -0.283 -0.066 0.291 @@ -11036,29 +11036,29 @@ vn 0 1 0 v 0.00615 -0.0398 0.16 vn 0 1 0 v 0.000675 -0.0398 0.164 -vn -1 0 -0.00085 +vn -1 0 -0.000848 v 0.00068 -0.0398 0.158 -vn -1 0 -0.00085 +vn -1 0 -0.000848 v 0.000675 -0.0453 0.164 -vn -1 0 -0.00085 +vn -1 0 -0.000848 v 0.000675 -0.0453 0.164 -vn -1 0 -0.00085 +vn -1 0 -0.000848 v 0.00068 -0.0398 0.158 -vn -1 0 -0.00085 +vn -1 0 -0.000848 v 0.00068 -0.0453 0.158 -vn -1 0 -0.00085 +vn -1 0 -0.000848 v 0.00068 -0.0398 0.158 -vn 0.00159 0 -1 +vn 0.0016 0 -1 v 0.00247 -0.0398 0.158 -vn 0.00159 0 -1 +vn 0.0016 0 -1 v 0.00068 -0.0453 0.158 -vn 0.00159 0 -1 +vn 0.0016 0 -1 v 0.00068 -0.0453 0.158 -vn 0.00159 0 -1 +vn 0.0016 0 -1 v 0.00247 -0.0398 0.158 -vn 0.00159 0 -1 +vn 0.0016 0 -1 v 0.00247 -0.0453 0.158 -vn 0.00159 0 -1 +vn 0.0016 0 -1 v 0.00247 -0.0398 0.158 vn -1 0 0.00135 v 0.00247 -0.0398 0.157 @@ -11108,17 +11108,17 @@ vn -0.00709 0 1 v 0.0055 -0.0453 0.158 vn -0.00709 0 1 v 0.0055 -0.0398 0.158 -vn 1 0 0.000833 +vn 1 0 0.000842 v 0.0055 -0.0398 0.16 -vn 1 0 0.000833 +vn 1 0 0.000842 v 0.0055 -0.0453 0.158 -vn 1 0 0.000833 +vn 1 0 0.000842 v 0.0055 -0.0453 0.158 -vn 1 0 0.000833 +vn 1 0 0.000842 v 0.0055 -0.0398 0.16 -vn 1 0 0.000833 +vn 1 0 0.000842 v 0.0055 -0.0453 0.16 -vn 1 0 0.000833 +vn 1 0 0.000842 v 0.0055 -0.0398 0.16 vn -0.00351 0 -1 v 0.00615 -0.0398 0.16 @@ -11132,17 +11132,17 @@ vn -0.00351 0 -1 v 0.00615 -0.0453 0.16 vn -0.00351 0 -1 v 0.00615 -0.0398 0.16 -vn 1 0 0.00094 +vn 1 0 0.000941 v 0.00615 -0.0398 0.164 -vn 1 0 0.00094 +vn 1 0 0.000941 v 0.00615 -0.0453 0.16 -vn 1 0 0.00094 +vn 1 0 0.000941 v 0.00615 -0.0453 0.16 -vn 1 0 0.00094 +vn 1 0 0.000941 v 0.00615 -0.0398 0.164 -vn 1 0 0.00094 +vn 1 0 0.000941 v 0.00615 -0.0453 0.164 -vn 1 0 0.00094 +vn 1 0 0.000941 v 0.00615 -0.0398 0.164 vn -0.00331 0 1 v 0.0041 -0.0398 0.164 @@ -11210,17 +11210,17 @@ vn -1 0 -0.00363 v -0.000303 -0.0469 0.164 vn -1 0 -0.00363 v -0.000303 -0.0414 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v 0.000675 -0.0414 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v -0.000303 -0.0469 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v -0.000303 -0.0469 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v 0.000675 -0.0414 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v 0.000675 -0.0469 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v 0.000675 -0.0414 0.164 vn 0.00276 0 -1 v 0.0041 -0.0414 0.164 @@ -11258,17 +11258,17 @@ vn -0.00412 0 1 v 0.000774 -0.0469 0.171 vn -0.00412 0 1 v 0.000774 -0.0414 0.171 -vn -1 0 -0.00458 +vn -1 0 -0.00459 v 0.000782 -0.0414 0.169 -vn -1 0 -0.00458 +vn -1 0 -0.00459 v 0.000774 -0.0469 0.171 -vn -1 0 -0.00458 +vn -1 0 -0.00459 v 0.000774 -0.0469 0.171 -vn -1 0 -0.00458 +vn -1 0 -0.00459 v 0.000782 -0.0414 0.169 -vn -1 0 -0.00458 +vn -1 0 -0.00459 v 0.000782 -0.0469 0.169 -vn -1 0 -0.00458 +vn -1 0 -0.00459 v 0.000782 -0.0414 0.169 vn -0.00417 0 1 v -0.000323 -0.0414 0.169 @@ -14024,17 +14024,17 @@ vn 0 1 0 v -0.248 -0.0136 -0.0633 vn 0 1 0 v -0.259 -0.0136 -0.0634 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0136 -0.0657 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0191 -0.0634 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0191 -0.0634 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0136 -0.0657 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0191 -0.0657 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0136 -0.0657 vn 0.0152 0 -1 v -0.248 -0.0136 -0.0655 @@ -16760,17 +16760,17 @@ vn -0.0937 0 0.996 v 0.0522 -0.0518 0.188 vn -0.0937 0 0.996 v 0.0522 -0.0463 0.188 -vn -0.995 0 -0.0948 +vn -0.996 0 -0.0948 v 0.053 -0.0463 0.18 -vn -0.995 0 -0.0948 +vn -0.996 0 -0.0948 v 0.0522 -0.0518 0.188 -vn -0.995 0 -0.0948 +vn -0.996 0 -0.0948 v 0.0522 -0.0518 0.188 -vn -0.995 0 -0.0948 +vn -0.996 0 -0.0948 v 0.053 -0.0463 0.18 -vn -0.995 0 -0.0948 +vn -0.996 0 -0.0948 v 0.053 -0.0518 0.18 -vn -0.995 0 -0.0948 +vn -0.996 0 -0.0948 v 0.053 -0.0463 0.18 vn 0.0937 0 -0.996 v 0.0583 -0.0463 0.18 @@ -16856,41 +16856,41 @@ vn -1 0 -0.00929 v 0.0624 -0.0583 0.154 vn -1 0 -0.00929 v 0.0624 -0.0529 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0615 -0.0529 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0624 -0.0583 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0624 -0.0583 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0615 -0.0529 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0615 -0.0583 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0615 -0.0529 0.154 -vn -1 0 -0.00721 +vn -1 0 -0.0072 v 0.0615 -0.0529 0.153 -vn -1 0 -0.00721 +vn -1 0 -0.0072 v 0.0615 -0.0583 0.154 -vn -1 0 -0.00721 +vn -1 0 -0.0072 v 0.0615 -0.0583 0.154 -vn -1 0 -0.00721 +vn -1 0 -0.0072 v 0.0615 -0.0529 0.153 -vn -1 0 -0.00721 +vn -1 0 -0.0072 v 0.0615 -0.0583 0.153 -vn -1 0 -0.00721 +vn -1 0 -0.0072 v 0.0615 -0.0529 0.153 -vn 0.00824 0 -1 +vn 0.00825 0 -1 v 0.0641 -0.0529 0.153 -vn 0.00824 0 -1 +vn 0.00825 0 -1 v 0.0615 -0.0583 0.153 -vn 0.00824 0 -1 +vn 0.00825 0 -1 v 0.0615 -0.0583 0.153 -vn 0.00824 0 -1 +vn 0.00825 0 -1 v 0.0641 -0.0529 0.153 -vn 0.00824 0 -1 +vn 0.00825 0 -1 v 0.0641 -0.0583 0.153 -vn 0.00824 0 -1 +vn 0.00825 0 -1 v 0.0641 -0.0529 0.153 vn 1 0 0.00813 v 0.0641 -0.0529 0.154 @@ -18020,17 +18020,17 @@ vn -0.0107 0 -1 v 0.217 -0.0583 0.449 vn -0.0107 0 -1 v 0.217 -0.0529 0.449 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0529 0.459 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0583 0.449 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0583 0.449 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0529 0.459 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0583 0.459 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0529 0.459 vn -0.0197 0 1 v 0.213 -0.0529 0.458 @@ -18056,17 +18056,17 @@ vn -1 0 -0.00435 v 0.213 -0.0583 0.454 vn -1 0 -0.00435 v 0.213 -0.0529 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.208 -0.0529 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.213 -0.0583 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.213 -0.0583 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.208 -0.0529 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.208 -0.0583 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.208 -0.0529 0.454 vn -1 0 0.019 v 0.207 -0.0529 0.444 @@ -19832,29 +19832,29 @@ vn 1 0 0.0151 v 0.281 -0.0142 0.0868 vn 1 0 0.0151 v 0.281 -0.00872 0.0868 -vn 0.0151 0 -1 +vn 0.015 0 -1 v 0.282 -0.00872 0.0868 -vn 0.0151 0 -1 +vn 0.015 0 -1 v 0.281 -0.0142 0.0868 -vn 0.0151 0 -1 +vn 0.015 0 -1 v 0.281 -0.0142 0.0868 -vn 0.0151 0 -1 +vn 0.015 0 -1 v 0.282 -0.00872 0.0868 -vn 0.0151 0 -1 +vn 0.015 0 -1 v 0.282 -0.0142 0.0868 -vn 0.0151 0 -1 +vn 0.015 0 -1 v 0.282 -0.00872 0.0868 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.00872 0.0879 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.0142 0.0868 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.0142 0.0868 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.00872 0.0879 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.0142 0.0879 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.00872 0.0879 vn 0.0151 0 -1 v 0.285 -0.00872 0.0879 @@ -21098,17 +21098,17 @@ vn 0.628 0 0.778 v 0.422 0.0382 0.0445 vn 0.628 0 0.778 v 0.422 0.0436 0.0445 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.42 0.0436 0.0417 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.422 0.0382 0.0445 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.422 0.0382 0.0445 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.42 0.0436 0.0417 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.42 0.0382 0.0417 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.233 -0.0136 0.0844 vn 0 1 0 v 0.236 -0.0136 0.0825 @@ -22472,17 +22472,17 @@ vn 0 1 0 v 0.276 -0.00872 0.0908 vn 0 1 0 v 0.272 -0.00872 0.0923 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.273 -0.00872 0.0906 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.272 -0.0142 0.0923 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.272 -0.0142 0.0923 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.273 -0.00872 0.0906 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.273 -0.0142 0.0906 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.273 -0.00872 0.0906 vn 0.0461 0 -0.999 v 0.276 -0.00872 0.0908 @@ -23534,17 +23534,17 @@ vn 0.99 0 -0.142 v 0.135 -0.0436 0.0724 vn 0.99 0 -0.142 v 0.135 -0.0382 0.0724 -vn -0.00889 0 1 +vn -0.0089 0 1 v 0.132 -0.0382 0.0724 -vn -0.00889 0 1 +vn -0.0089 0 1 v 0.135 -0.0436 0.0724 -vn -0.00889 0 1 +vn -0.0089 0 1 v 0.135 -0.0436 0.0724 -vn -0.00889 0 1 +vn -0.0089 0 1 v 0.132 -0.0382 0.0724 -vn -0.00889 0 1 +vn -0.0089 0 1 v 0.132 -0.0436 0.0724 -vn -0.00889 0 1 +vn -0.0089 0 1 v 0.132 -0.0382 0.0724 vn -0.996 0 0.0942 v 0.132 -0.0382 0.0662 @@ -26552,17 +26552,17 @@ vn -0.34 0 -0.94 v 0.0605 -0.0534 0.101 vn -0.34 0 -0.94 v 0.0605 -0.048 0.101 -vn 0.913 0 -0.408 +vn 0.913 0 -0.409 v 0.0616 -0.048 0.104 -vn 0.913 0 -0.408 +vn 0.913 0 -0.409 v 0.0605 -0.0534 0.101 -vn 0.913 0 -0.408 +vn 0.913 0 -0.409 v 0.0605 -0.0534 0.101 -vn 0.913 0 -0.408 +vn 0.913 0 -0.409 v 0.0616 -0.048 0.104 -vn 0.913 0 -0.408 +vn 0.913 0 -0.409 v 0.0616 -0.0534 0.104 -vn 0.913 0 -0.408 +vn 0.913 0 -0.409 v 0.0616 -0.048 0.104 vn 0.391 0 0.92 v 0.0572 -0.048 0.106 @@ -27782,17 +27782,17 @@ vn 0.877 0 0.481 v 0.194 -0.0354 0.121 vn 0.877 0 0.481 v 0.194 -0.03 0.121 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.196 -0.03 0.122 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.194 -0.0354 0.121 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.194 -0.0354 0.121 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.196 -0.03 0.122 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.196 -0.0354 0.122 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.196 -0.03 0.122 vn 0.877 0 0.481 v 0.194 -0.03 0.126 @@ -31970,17 +31970,17 @@ vn 0.538 0 0.843 v 0.258 -0.0485 0.36 vn 0.538 0 0.843 v 0.258 -0.0431 0.36 -vn -0.0131 0 1 +vn -0.0152 0 1 v 0.258 -0.0431 0.36 -vn -0.0131 0 1 +vn -0.0152 0 1 v 0.258 -0.0485 0.36 -vn -0.0131 0 1 +vn -0.0152 0 1 v 0.258 -0.0485 0.36 -vn -0.0131 0 1 +vn -0.0152 0 1 v 0.258 -0.0431 0.36 -vn -0.0131 0 1 +vn -0.0152 0 1 v 0.258 -0.0485 0.36 -vn -0.0131 0 1 +vn -0.0152 0 1 v 0.258 -0.0431 0.36 vn -0.854 0 0.52 v 0.258 -0.0431 0.36 @@ -33464,17 +33464,17 @@ vn -0.0103 0 -1 v 0.0681 -0.0567 0.133 vn -0.0103 0 -1 v 0.0681 -0.0513 0.133 -vn 1 0 -0.0106 +vn 1 0 -0.0105 v 0.0682 -0.0513 0.138 -vn 1 0 -0.0106 +vn 1 0 -0.0105 v 0.0681 -0.0567 0.133 -vn 1 0 -0.0106 +vn 1 0 -0.0105 v 0.0681 -0.0567 0.133 -vn 1 0 -0.0106 +vn 1 0 -0.0105 v 0.0682 -0.0513 0.138 -vn 1 0 -0.0106 +vn 1 0 -0.0105 v 0.0682 -0.0567 0.138 -vn 1 0 -0.0106 +vn 1 0 -0.0105 v 0.0682 -0.0513 0.138 vn 1 0 -0.0114 v 0.0682 -0.0513 0.144 @@ -33770,17 +33770,17 @@ vn -0.998 0 -0.0597 v 0.0956 -0.0567 0.138 vn -0.998 0 -0.0597 v 0.0956 -0.0513 0.138 -vn -1 0 -0.0165 +vn -1 0 -0.0164 v 0.0956 -0.0513 0.135 -vn -1 0 -0.0165 +vn -1 0 -0.0164 v 0.0956 -0.0567 0.138 -vn -1 0 -0.0165 +vn -1 0 -0.0164 v 0.0956 -0.0567 0.138 -vn -1 0 -0.0165 +vn -1 0 -0.0164 v 0.0956 -0.0513 0.135 -vn -1 0 -0.0165 +vn -1 0 -0.0164 v 0.0956 -0.0567 0.135 -vn -1 0 -0.0165 +vn -1 0 -0.0164 v 0.107 -0.048 0.135 vn 0 1 0 v 0.104 -0.048 0.145 @@ -34490,17 +34490,17 @@ vn 0.582 0 -0.813 v 0.146 -0.0485 0.17 vn 0.582 0 -0.813 v 0.146 -0.0431 0.17 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.145 -0.0431 0.172 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.146 -0.0485 0.17 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.146 -0.0485 0.17 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.145 -0.0431 0.172 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.145 -0.0485 0.172 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.145 -0.0431 0.172 vn -0.582 0 0.813 v 0.142 -0.0431 0.17 @@ -36128,17 +36128,17 @@ vn 1 0 -0.0108 v 0.0707 -0.0583 0.152 vn 1 0 -0.0108 v 0.0707 -0.0529 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0673 -0.0529 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0707 -0.0583 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0707 -0.0583 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0673 -0.0529 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0673 -0.0583 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0673 -0.0529 0.152 vn -1 0 -0.0151 v 0.0673 -0.0529 0.151 @@ -37340,41 +37340,41 @@ vn -1 0 0.00184 v 0.227 -0.06 0.444 vn -1 0 0.00184 v 0.227 -0.0545 0.444 -vn 0.00115 0 -1 +vn 0.00116 0 -1 v 0.228 -0.0545 0.444 -vn 0.00115 0 -1 +vn 0.00116 0 -1 v 0.227 -0.06 0.444 -vn 0.00115 0 -1 +vn 0.00116 0 -1 v 0.227 -0.06 0.444 -vn 0.00115 0 -1 +vn 0.00116 0 -1 v 0.228 -0.0545 0.444 -vn 0.00115 0 -1 +vn 0.00116 0 -1 v 0.228 -0.06 0.444 -vn 0.00115 0 -1 +vn 0.00116 0 -1 v 0.228 -0.0545 0.444 -vn -1 0 0.00089 +vn -1 0 0.000891 v 0.228 -0.0545 0.439 -vn -1 0 0.00089 +vn -1 0 0.000891 v 0.228 -0.06 0.444 -vn -1 0 0.00089 +vn -1 0 0.000891 v 0.228 -0.06 0.444 -vn -1 0 0.00089 +vn -1 0 0.000891 v 0.228 -0.0545 0.439 -vn -1 0 0.00089 +vn -1 0 0.000891 v 0.228 -0.06 0.439 -vn -1 0 0.00089 +vn -1 0 0.000891 v 0.228 -0.0545 0.439 -vn -0.000733 0 -1 +vn -0.000737 0 -1 v 0.232 -0.0545 0.439 -vn -0.000733 0 -1 +vn -0.000737 0 -1 v 0.228 -0.06 0.439 -vn -0.000733 0 -1 +vn -0.000737 0 -1 v 0.228 -0.06 0.439 -vn -0.000733 0 -1 +vn -0.000737 0 -1 v 0.232 -0.0545 0.439 -vn -0.000733 0 -1 +vn -0.000737 0 -1 v 0.232 -0.06 0.439 -vn -0.000733 0 -1 +vn -0.000737 0 -1 v 0.232 -0.0545 0.439 vn 1 0 -0.00192 v 0.232 -0.0545 0.443 @@ -37412,29 +37412,29 @@ vn 1 0 0.00107 v 0.231 -0.06 0.444 vn 1 0 0.00107 v 0.231 -0.0545 0.444 -vn -0.00205 0 -1 +vn -0.00207 0 -1 v 0.233 -0.0545 0.444 -vn -0.00205 0 -1 +vn -0.00207 0 -1 v 0.231 -0.06 0.444 -vn -0.00205 0 -1 +vn -0.00207 0 -1 v 0.231 -0.06 0.444 -vn -0.00205 0 -1 +vn -0.00207 0 -1 v 0.233 -0.0545 0.444 -vn -0.00205 0 -1 +vn -0.00207 0 -1 v 0.233 -0.06 0.444 -vn -0.00205 0 -1 +vn -0.00207 0 -1 v 0.233 -0.0545 0.444 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.0545 0.446 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.06 0.444 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.06 0.444 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.0545 0.446 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.06 0.446 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.0545 0.446 vn -0.0268 0 1 v 0.232 -0.0545 0.445 @@ -37970,17 +37970,17 @@ vn 0.0719 0 0.997 v 0.101 -0.0567 0.172 vn 0.0719 0 0.997 v 0.101 -0.0513 0.172 -vn 0.997 0 -0.0719 +vn 0.997 0 -0.072 v 0.101 -0.0513 0.173 -vn 0.997 0 -0.0719 +vn 0.997 0 -0.072 v 0.101 -0.0567 0.172 -vn 0.997 0 -0.0719 +vn 0.997 0 -0.072 v 0.101 -0.0567 0.172 -vn 0.997 0 -0.0719 +vn 0.997 0 -0.072 v 0.101 -0.0513 0.173 -vn 0.997 0 -0.0719 +vn 0.997 0 -0.072 v 0.101 -0.0567 0.173 -vn 0.997 0 -0.0719 +vn 0.997 0 -0.072 v 0.101 -0.0513 0.173 vn 0.0719 0 0.997 v 0.0927 -0.0513 0.174 @@ -38864,17 +38864,17 @@ vn -0.999 0 0.0368 v 0.0346 -0.0502 0.366 vn -0.999 0 0.0368 v 0.0346 -0.0447 0.366 -vn -0.0367 0 -0.999 +vn -0.0366 0 -0.999 v 0.0352 -0.0447 0.366 -vn -0.0367 0 -0.999 +vn -0.0366 0 -0.999 v 0.0346 -0.0502 0.366 -vn -0.0367 0 -0.999 +vn -0.0366 0 -0.999 v 0.0346 -0.0502 0.366 -vn -0.0367 0 -0.999 +vn -0.0366 0 -0.999 v 0.0352 -0.0447 0.366 -vn -0.0367 0 -0.999 +vn -0.0366 0 -0.999 v 0.0352 -0.0502 0.366 -vn -0.0367 0 -0.999 +vn -0.0366 0 -0.999 v 0.0352 -0.0447 0.366 vn -0.999 0 0.0377 v 0.0351 -0.0447 0.363 diff --git a/tests/testdata/control_files/3d/expected_big_scene_export/expected_big_scene_export-3.obj b/tests/testdata/control_files/3d/expected_big_scene_export/expected_big_scene_export-3.obj index 243232c91ca9..df283ca4cfe2 100644 --- a/tests/testdata/control_files/3d/expected_big_scene_export/expected_big_scene_export-3.obj +++ b/tests/testdata/control_files/3d/expected_big_scene_export/expected_big_scene_export-3.obj @@ -1280,17 +1280,17 @@ vn 0.474 0 -0.88 v -0.307 -0.0682 0.276 vn 0.474 0 -0.88 v -0.307 -0.0627 0.276 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.308 -0.0627 0.278 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.307 -0.0682 0.276 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.307 -0.0682 0.276 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.308 -0.0627 0.278 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.308 -0.0682 0.278 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.308 -0.0627 0.278 vn 0.883 0 0.47 v -0.309 -0.0627 0.28 @@ -1496,17 +1496,17 @@ vn 0.879 0 0.476 v -0.291 -0.0714 0.29 vn 0.879 0 0.476 v -0.291 -0.066 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.292 -0.066 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.291 -0.0714 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.291 -0.0714 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.292 -0.066 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.292 -0.0714 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.292 -0.066 0.29 vn -0.474 0 0.88 v -0.294 -0.066 0.289 @@ -1724,17 +1724,17 @@ vn 0.471 0 -0.882 v -0.285 -0.0714 0.289 vn 0.471 0 -0.882 v -0.285 -0.066 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.066 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.0714 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.0714 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.066 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.0714 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.066 0.289 vn 0.475 0 -0.88 v -0.283 -0.066 0.291 @@ -2156,17 +2156,17 @@ vn 0 1 0 v -0.321 -0.0594 0.267 vn 0 1 0 v -0.323 -0.0594 0.268 -vn -0.907 0 -0.42 +vn -0.908 0 -0.42 v -0.322 -0.0594 0.267 -vn -0.907 0 -0.42 +vn -0.908 0 -0.42 v -0.323 -0.0649 0.268 -vn -0.907 0 -0.42 +vn -0.908 0 -0.42 v -0.323 -0.0649 0.268 -vn -0.907 0 -0.42 +vn -0.908 0 -0.42 v -0.322 -0.0594 0.267 -vn -0.907 0 -0.42 +vn -0.908 0 -0.42 v -0.322 -0.0649 0.267 -vn -0.907 0 -0.42 +vn -0.908 0 -0.42 v -0.322 -0.0594 0.267 vn 0.418 0 -0.909 v -0.321 -0.0594 0.267 @@ -2844,17 +2844,17 @@ vn -0.998 0 -0.0581 v -0.247 -0.0502 0.149 vn -0.998 0 -0.0581 v -0.247 -0.0447 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.245 -0.0447 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.247 -0.0502 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.247 -0.0502 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.245 -0.0447 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.245 -0.0502 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.245 -0.0447 0.149 vn 0.998 0 0.057 v -0.246 -0.0447 0.152 @@ -3066,29 +3066,29 @@ vn -0.0144 0 -1 v -0.301 -0.0583 0.141 vn -0.0144 0 -1 v -0.301 -0.0529 0.141 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0529 0.145 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0583 0.141 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0583 0.141 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0529 0.145 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0583 0.145 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0529 0.145 -vn 0.00049 0 1 +vn 0.000499 0 1 v -0.302 -0.0529 0.145 -vn 0.00049 0 1 +vn 0.000499 0 1 v -0.301 -0.0583 0.145 -vn 0.00049 0 1 +vn 0.000499 0 1 v -0.301 -0.0583 0.145 -vn 0.00049 0 1 +vn 0.000499 0 1 v -0.302 -0.0529 0.145 -vn 0.00049 0 1 +vn 0.000499 0 1 v -0.302 -0.0583 0.145 -vn 0.00049 0 1 +vn 0.000499 0 1 v -0.302 -0.0529 0.145 vn 1 0 -0.0275 v -0.302 -0.0529 0.147 @@ -4625,17 +4625,17 @@ vn 0 1 0 v -0.248 -0.0136 -0.0633 vn 0 1 0 v -0.259 -0.0136 -0.0634 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0136 -0.0657 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0191 -0.0634 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0191 -0.0634 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0136 -0.0657 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0191 -0.0657 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0136 -0.0657 vn 0.0152 0 -1 v -0.248 -0.0136 -0.0655 @@ -7333,17 +7333,17 @@ vn 0 1 0 v -0.0224 -0.048 0.197 vn 0 1 0 v -0.0297 -0.048 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.026 -0.048 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.0297 -0.0534 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.0297 -0.0534 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.026 -0.048 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.026 -0.0534 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.026 -0.048 0.193 vn 1 0 0.00114 v -0.026 -0.048 0.197 @@ -7369,17 +7369,17 @@ vn 0.0015 0 -1 v -0.0224 -0.0534 0.197 vn 0.0015 0 -1 v -0.0224 -0.048 0.197 -vn 1 0 0.00144 +vn 1 0 0.00145 v -0.0224 -0.048 0.201 -vn 1 0 0.00144 +vn 1 0 0.00145 v -0.0224 -0.0534 0.197 -vn 1 0 0.00144 +vn 1 0 0.00145 v -0.0224 -0.0534 0.197 -vn 1 0 0.00144 +vn 1 0 0.00145 v -0.0224 -0.048 0.201 -vn 1 0 0.00144 +vn 1 0 0.00145 v -0.0224 -0.0534 0.201 -vn 1 0 0.00144 +vn 1 0 0.00145 v -0.0224 -0.048 0.201 vn -0.00121 0 1 v -0.0285 -0.048 0.201 @@ -7393,41 +7393,41 @@ vn -0.00121 0 1 v -0.0285 -0.0534 0.201 vn -0.00121 0 1 v -0.0285 -0.048 0.201 -vn -1 0 -0.000812 +vn -1 0 -0.000811 v -0.0285 -0.048 0.196 -vn -1 0 -0.000812 +vn -1 0 -0.000811 v -0.0285 -0.0534 0.201 -vn -1 0 -0.000812 +vn -1 0 -0.000811 v -0.0285 -0.0534 0.201 -vn -1 0 -0.000812 +vn -1 0 -0.000811 v -0.0285 -0.048 0.196 -vn -1 0 -0.000812 +vn -1 0 -0.000811 v -0.0285 -0.0534 0.196 -vn -1 0 -0.000812 +vn -1 0 -0.000811 v -0.0285 -0.048 0.196 -vn -0.000612 0 1 +vn -0.000606 0 1 v -0.0297 -0.048 0.196 -vn -0.000612 0 1 +vn -0.000606 0 1 v -0.0285 -0.0534 0.196 -vn -0.000612 0 1 +vn -0.000606 0 1 v -0.0285 -0.0534 0.196 -vn -0.000612 0 1 +vn -0.000606 0 1 v -0.0297 -0.048 0.196 -vn -0.000612 0 1 +vn -0.000606 0 1 v -0.0297 -0.0534 0.196 -vn -0.000612 0 1 +vn -0.000606 0 1 v -0.0297 -0.048 0.196 -vn -1 0 -0.00092 +vn -1 0 -0.000919 v -0.0297 -0.048 0.193 -vn -1 0 -0.00092 +vn -1 0 -0.000919 v -0.0297 -0.0534 0.196 -vn -1 0 -0.00092 +vn -1 0 -0.000919 v -0.0297 -0.0534 0.196 -vn -1 0 -0.00092 +vn -1 0 -0.000919 v -0.0297 -0.048 0.193 -vn -1 0 -0.00092 +vn -1 0 -0.000919 v -0.0297 -0.0534 0.193 -vn -1 0 -0.00092 +vn -1 0 -0.000919 v -0.0338 -0.0496 0.197 vn 0 1 0 v -0.0374 -0.0496 0.197 @@ -7465,17 +7465,17 @@ vn 0 1 0 v -0.0297 -0.0496 0.193 vn 0 1 0 v -0.0297 -0.0496 0.193 -vn 1 0 0.00092 +vn 1 0 0.000919 v -0.0297 -0.0496 0.196 -vn 1 0 0.00092 +vn 1 0 0.000919 v -0.0297 -0.0551 0.193 -vn 1 0 0.00092 +vn 1 0 0.000919 v -0.0297 -0.0551 0.193 -vn 1 0 0.00092 +vn 1 0 0.000919 v -0.0297 -0.0496 0.196 -vn 1 0 0.00092 +vn 1 0 0.000919 v -0.0297 -0.0551 0.196 -vn 1 0 0.00092 +vn 1 0 0.000919 v -0.0297 -0.0496 0.196 vn -0.00321 0 1 v -0.0313 -0.0496 0.196 @@ -7525,17 +7525,17 @@ vn -1 0 -0.000968 v -0.0374 -0.0551 0.197 vn -1 0 -0.000968 v -0.0374 -0.0496 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0338 -0.0496 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0374 -0.0551 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0374 -0.0551 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0338 -0.0496 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0338 -0.0551 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0338 -0.0496 0.197 vn -1 0 -0.00115 v -0.0338 -0.0496 0.193 @@ -7549,17 +7549,17 @@ vn -1 0 -0.00115 v -0.0338 -0.0551 0.193 vn -1 0 -0.00115 v -0.0338 -0.0496 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0297 -0.0496 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0338 -0.0551 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0338 -0.0551 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0297 -0.0496 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0297 -0.0551 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0524 -0.0529 0.201 vn 0 1 0 v -0.0524 -0.0529 0.207 @@ -7585,17 +7585,17 @@ vn 0 1 0 v -0.044 -0.0529 0.204 vn 0 1 0 v -0.0524 -0.0529 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0485 -0.0529 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0524 -0.0583 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0524 -0.0583 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0485 -0.0529 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0485 -0.0583 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0485 -0.0529 0.201 vn 1 0 0.0011 v -0.0485 -0.0529 0.204 @@ -7633,17 +7633,17 @@ vn 1 0 0.00162 v -0.044 -0.0583 0.207 vn 1 0 0.00162 v -0.044 -0.0529 0.207 -vn -0.000634 0 1 +vn -0.000636 0 1 v -0.0524 -0.0529 0.207 -vn -0.000634 0 1 +vn -0.000636 0 1 v -0.044 -0.0583 0.207 -vn -0.000634 0 1 +vn -0.000636 0 1 v -0.044 -0.0583 0.207 -vn -0.000634 0 1 +vn -0.000636 0 1 v -0.0524 -0.0529 0.207 -vn -0.000634 0 1 +vn -0.000636 0 1 v -0.0524 -0.0583 0.207 -vn -0.000634 0 1 +vn -0.000636 0 1 v -0.0524 -0.0529 0.207 vn -1 0 -0.00134 v -0.0524 -0.0529 0.201 @@ -7843,17 +7843,17 @@ vn 0 1 0 v -0.0463 -0.0513 0.186 vn 0 1 0 v -0.0513 -0.0513 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0499 -0.0513 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0513 -0.0567 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0513 -0.0567 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0499 -0.0513 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0499 -0.0567 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0499 -0.0513 0.182 vn -0.0182 0 -1 v -0.0464 -0.0513 0.182 @@ -8629,17 +8629,17 @@ vn 0 1 0 v -0.0423 -0.048 0.17 vn 0 1 0 v -0.0453 -0.048 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0424 -0.048 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0453 -0.0534 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0453 -0.0534 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0424 -0.048 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0424 -0.0534 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0424 -0.048 0.165 vn 1 0 -0.0167 v -0.0423 -0.048 0.17 @@ -8653,17 +8653,17 @@ vn 1 0 -0.0167 v -0.0423 -0.0534 0.17 vn 1 0 -0.0167 v -0.0423 -0.048 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0452 -0.048 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0423 -0.0534 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0423 -0.0534 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0452 -0.048 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0452 -0.0534 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0452 -0.048 0.17 vn -1 0 0.0167 v -0.0453 -0.048 0.165 @@ -9181,17 +9181,17 @@ vn 0 1 0 v -0.212 -0.048 0.153 vn 0 1 0 v -0.216 -0.048 0.15 -vn 0.0514 0 -0.999 +vn 0.0513 0 -0.999 v -0.211 -0.048 0.15 -vn 0.0514 0 -0.999 +vn 0.0513 0 -0.999 v -0.216 -0.0534 0.15 -vn 0.0514 0 -0.999 +vn 0.0513 0 -0.999 v -0.216 -0.0534 0.15 -vn 0.0514 0 -0.999 +vn 0.0513 0 -0.999 v -0.211 -0.048 0.15 -vn 0.0514 0 -0.999 +vn 0.0513 0 -0.999 v -0.211 -0.0534 0.15 -vn 0.0514 0 -0.999 +vn 0.0513 0 -0.999 v -0.211 -0.048 0.15 vn 0.999 0 0.0516 v -0.212 -0.048 0.153 @@ -10375,17 +10375,17 @@ vn 0.0724 0 -0.997 v -0.153 -0.0583 0.144 vn 0.0724 0 -0.997 v -0.153 -0.0529 0.144 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0529 0.147 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0583 0.144 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0583 0.144 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0529 0.147 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0583 0.147 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0529 0.147 vn -0.088 0 0.996 v -0.172 -0.0529 0.146 @@ -10783,17 +10783,17 @@ vn -0.00872 0 -1 v -0.141 -0.0583 0.152 vn -0.00872 0 -1 v -0.141 -0.0529 0.152 -vn 1 0 -0.00923 +vn 1 0 -0.00924 v -0.141 -0.0529 0.155 -vn 1 0 -0.00923 +vn 1 0 -0.00924 v -0.141 -0.0583 0.152 -vn 1 0 -0.00923 +vn 1 0 -0.00924 v -0.141 -0.0583 0.152 -vn 1 0 -0.00923 +vn 1 0 -0.00924 v -0.141 -0.0529 0.155 -vn 1 0 -0.00923 +vn 1 0 -0.00924 v -0.141 -0.0583 0.155 -vn 1 0 -0.00923 +vn 1 0 -0.00924 v -0.141 -0.0529 0.155 vn 0.0106 0 1 v -0.144 -0.0529 0.155 @@ -10855,17 +10855,17 @@ vn 1 0 -0.0206 v -0.188 -0.0551 0.16 vn 1 0 -0.0206 v -0.188 -0.0496 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.191 -0.0496 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.188 -0.0551 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.188 -0.0551 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.191 -0.0496 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.191 -0.0551 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.191 -0.0496 0.16 vn -1 0 0.0206 v -0.191 -0.0496 0.155 @@ -13789,17 +13789,17 @@ vn -1 0 0.00135 v 0.00247 -0.0453 0.157 vn -1 0 0.00135 v 0.00247 -0.0398 0.157 -vn 0.000759 0 -1 +vn 0.000758 0 -1 v 0.00626 -0.0398 0.157 -vn 0.000759 0 -1 +vn 0.000758 0 -1 v 0.00247 -0.0453 0.157 -vn 0.000759 0 -1 +vn 0.000758 0 -1 v 0.00247 -0.0453 0.157 -vn 0.000759 0 -1 +vn 0.000758 0 -1 v 0.00626 -0.0398 0.157 -vn 0.000759 0 -1 +vn 0.000758 0 -1 v 0.00626 -0.0453 0.157 -vn 0.000759 0 -1 +vn 0.000758 0 -1 v 0.00626 -0.0398 0.157 vn 1 0 0.00134 v 0.00626 -0.0398 0.158 @@ -13813,29 +13813,29 @@ vn 1 0 0.00134 v 0.00626 -0.0453 0.158 vn 1 0 0.00134 v 0.00626 -0.0398 0.158 -vn -0.00709 0 1 +vn -0.0071 0 1 v 0.0055 -0.0398 0.158 -vn -0.00709 0 1 +vn -0.0071 0 1 v 0.00626 -0.0453 0.158 -vn -0.00709 0 1 +vn -0.0071 0 1 v 0.00626 -0.0453 0.158 -vn -0.00709 0 1 +vn -0.0071 0 1 v 0.0055 -0.0398 0.158 -vn -0.00709 0 1 +vn -0.0071 0 1 v 0.0055 -0.0453 0.158 -vn -0.00709 0 1 +vn -0.0071 0 1 v 0.0055 -0.0398 0.158 -vn 1 0 0.000833 +vn 1 0 0.000831 v 0.0055 -0.0398 0.16 -vn 1 0 0.000833 +vn 1 0 0.000831 v 0.0055 -0.0453 0.158 -vn 1 0 0.000833 +vn 1 0 0.000831 v 0.0055 -0.0453 0.158 -vn 1 0 0.000833 +vn 1 0 0.000831 v 0.0055 -0.0398 0.16 -vn 1 0 0.000833 +vn 1 0 0.000831 v 0.0055 -0.0453 0.16 -vn 1 0 0.000833 +vn 1 0 0.000831 v 0.0055 -0.0398 0.16 vn -0.00351 0 -1 v 0.00615 -0.0398 0.16 @@ -13849,17 +13849,17 @@ vn -0.00351 0 -1 v 0.00615 -0.0453 0.16 vn -0.00351 0 -1 v 0.00615 -0.0398 0.16 -vn 1 0 0.00094 +vn 1 0 0.000941 v 0.00615 -0.0398 0.164 -vn 1 0 0.00094 +vn 1 0 0.000941 v 0.00615 -0.0453 0.16 -vn 1 0 0.00094 +vn 1 0 0.000941 v 0.00615 -0.0453 0.16 -vn 1 0 0.00094 +vn 1 0 0.000941 v 0.00615 -0.0398 0.164 -vn 1 0 0.00094 +vn 1 0 0.000941 v 0.00615 -0.0453 0.164 -vn 1 0 0.00094 +vn 1 0 0.000941 v 0.00615 -0.0398 0.164 vn -0.00331 0 1 v 0.0041 -0.0398 0.164 @@ -13927,17 +13927,17 @@ vn -1 0 -0.00363 v -0.000303 -0.0469 0.164 vn -1 0 -0.00363 v -0.000303 -0.0414 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v 0.000675 -0.0414 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v -0.000303 -0.0469 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v -0.000303 -0.0469 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v 0.000675 -0.0414 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v 0.000675 -0.0469 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v 0.000675 -0.0414 0.164 vn 0.00276 0 -1 v 0.0041 -0.0414 0.164 @@ -15801,9 +15801,9 @@ v -0.00196 -0.0316 -0.119 vn 0 1 0 v -0.000154 -0.0316 -0.114 vn 0 1 0 -v -2.76e-06 -0.0316 -0.119 +v -2.75e-06 -0.0316 -0.119 vn 0 1 0 -v -2.76e-06 -0.0316 -0.119 +v -2.75e-06 -0.0316 -0.119 vn 0 1 0 v -0.000154 -0.0316 -0.114 vn 0 1 0 @@ -15835,23 +15835,23 @@ v -0.00196 -0.0371 -0.119 vn -0.934 0 0.358 v -0.00196 -0.0316 -0.119 vn -0.358 0 -0.934 -v -2.76e-06 -0.0316 -0.119 +v -2.75e-06 -0.0316 -0.119 vn -0.358 0 -0.934 v -0.00196 -0.0371 -0.119 vn -0.358 0 -0.934 v -0.00196 -0.0371 -0.119 vn -0.358 0 -0.934 -v -2.76e-06 -0.0316 -0.119 +v -2.75e-06 -0.0316 -0.119 vn -0.358 0 -0.934 -v -2.76e-06 -0.0371 -0.119 +v -2.75e-06 -0.0371 -0.119 vn -0.358 0 -0.934 -v -2.76e-06 -0.0316 -0.119 +v -2.75e-06 -0.0316 -0.119 vn 0.934 0 -0.358 v 0.00181 -0.0316 -0.115 vn 0.934 0 -0.358 -v -2.76e-06 -0.0371 -0.119 +v -2.75e-06 -0.0371 -0.119 vn 0.934 0 -0.358 -v -2.76e-06 -0.0371 -0.119 +v -2.75e-06 -0.0371 -0.119 vn 0.934 0 -0.358 v 0.00181 -0.0316 -0.115 vn 0.934 0 -0.358 @@ -17082,17 +17082,17 @@ vn -0.0107 0 -1 v 0.217 -0.0583 0.449 vn -0.0107 0 -1 v 0.217 -0.0529 0.449 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0529 0.459 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0583 0.449 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0583 0.449 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0529 0.459 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0583 0.459 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0529 0.459 vn -0.0197 0 1 v 0.213 -0.0529 0.458 @@ -17118,17 +17118,17 @@ vn -1 0 -0.00435 v 0.213 -0.0583 0.454 vn -1 0 -0.00435 v 0.213 -0.0529 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.208 -0.0529 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.213 -0.0583 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.213 -0.0583 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.208 -0.0529 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.208 -0.0583 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.208 -0.0529 0.454 vn -1 0 0.019 v 0.207 -0.0529 0.444 @@ -18486,17 +18486,17 @@ vn 0.538 0 0.843 v 0.258 -0.0485 0.36 vn 0.538 0 0.843 v 0.258 -0.0431 0.36 -vn -0.0131 0 1 +vn -0.015 0 1 v 0.258 -0.0431 0.36 -vn -0.0131 0 1 +vn -0.015 0 1 v 0.258 -0.0485 0.36 -vn -0.0131 0 1 +vn -0.015 0 1 v 0.258 -0.0485 0.36 -vn -0.0131 0 1 +vn -0.015 0 1 v 0.258 -0.0431 0.36 -vn -0.0131 0 1 +vn -0.015 0 1 v 0.258 -0.0485 0.36 -vn -0.0131 0 1 +vn -0.015 0 1 v 0.258 -0.0431 0.36 vn -0.854 0 0.52 v 0.258 -0.0431 0.36 @@ -18828,17 +18828,17 @@ vn 0 1 0 v 0.233 -0.0545 0.446 vn 0 1 0 v 0.227 -0.0545 0.446 -vn -1 0 0.00184 +vn -1 0 0.00185 v 0.227 -0.0545 0.444 -vn -1 0 0.00184 +vn -1 0 0.00185 v 0.227 -0.06 0.446 -vn -1 0 0.00184 +vn -1 0 0.00185 v 0.227 -0.06 0.446 -vn -1 0 0.00184 +vn -1 0 0.00185 v 0.227 -0.0545 0.444 -vn -1 0 0.00184 +vn -1 0 0.00185 v 0.227 -0.06 0.444 -vn -1 0 0.00184 +vn -1 0 0.00185 v 0.227 -0.0545 0.444 vn 0.00115 0 -1 v 0.228 -0.0545 0.444 @@ -18852,29 +18852,29 @@ vn 0.00115 0 -1 v 0.228 -0.06 0.444 vn 0.00115 0 -1 v 0.228 -0.0545 0.444 -vn -1 0 0.00089 +vn -1 0 0.000892 v 0.228 -0.0545 0.439 -vn -1 0 0.00089 +vn -1 0 0.000892 v 0.228 -0.06 0.444 -vn -1 0 0.00089 +vn -1 0 0.000892 v 0.228 -0.06 0.444 -vn -1 0 0.00089 +vn -1 0 0.000892 v 0.228 -0.0545 0.439 -vn -1 0 0.00089 +vn -1 0 0.000892 v 0.228 -0.06 0.439 -vn -1 0 0.00089 +vn -1 0 0.000892 v 0.228 -0.0545 0.439 -vn -0.000733 0 -1 +vn -0.000735 0 -1 v 0.232 -0.0545 0.439 -vn -0.000733 0 -1 +vn -0.000735 0 -1 v 0.228 -0.06 0.439 -vn -0.000733 0 -1 +vn -0.000735 0 -1 v 0.228 -0.06 0.439 -vn -0.000733 0 -1 +vn -0.000735 0 -1 v 0.232 -0.0545 0.439 -vn -0.000733 0 -1 +vn -0.000735 0 -1 v 0.232 -0.06 0.439 -vn -0.000733 0 -1 +vn -0.000735 0 -1 v 0.232 -0.0545 0.439 vn 1 0 -0.00192 v 0.232 -0.0545 0.443 @@ -18912,29 +18912,29 @@ vn 1 0 0.00107 v 0.231 -0.06 0.444 vn 1 0 0.00107 v 0.231 -0.0545 0.444 -vn -0.00205 0 -1 +vn -0.00206 0 -1 v 0.233 -0.0545 0.444 -vn -0.00205 0 -1 +vn -0.00206 0 -1 v 0.231 -0.06 0.444 -vn -0.00205 0 -1 +vn -0.00206 0 -1 v 0.231 -0.06 0.444 -vn -0.00205 0 -1 +vn -0.00206 0 -1 v 0.233 -0.0545 0.444 -vn -0.00205 0 -1 +vn -0.00206 0 -1 v 0.233 -0.06 0.444 -vn -0.00205 0 -1 +vn -0.00206 0 -1 v 0.233 -0.0545 0.444 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.0545 0.446 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.06 0.444 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.06 0.444 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.0545 0.446 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.06 0.446 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.0545 0.446 vn -0.0268 0 1 v 0.232 -0.0545 0.445 @@ -20566,17 +20566,17 @@ vn -0.0937 0 0.996 v 0.0522 -0.0518 0.188 vn -0.0937 0 0.996 v 0.0522 -0.0463 0.188 -vn -0.995 0 -0.0948 +vn -0.996 0 -0.0948 v 0.053 -0.0463 0.18 -vn -0.995 0 -0.0948 +vn -0.996 0 -0.0948 v 0.0522 -0.0518 0.188 -vn -0.995 0 -0.0948 +vn -0.996 0 -0.0948 v 0.0522 -0.0518 0.188 -vn -0.995 0 -0.0948 +vn -0.996 0 -0.0948 v 0.053 -0.0463 0.18 -vn -0.995 0 -0.0948 +vn -0.996 0 -0.0948 v 0.053 -0.0518 0.18 -vn -0.995 0 -0.0948 +vn -0.996 0 -0.0948 v 0.053 -0.0463 0.18 vn 0.0937 0 -0.996 v 0.0583 -0.0463 0.18 @@ -20662,17 +20662,17 @@ vn -1 0 -0.00929 v 0.0624 -0.0583 0.154 vn -1 0 -0.00929 v 0.0624 -0.0529 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0615 -0.0529 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0624 -0.0583 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0624 -0.0583 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0615 -0.0529 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0615 -0.0583 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0615 -0.0529 0.154 vn -1 0 -0.00721 v 0.0615 -0.0529 0.153 @@ -23746,17 +23746,17 @@ vn -0.951 0 0.31 v 0.107 -0.0518 0.0743 vn -0.951 0 0.31 v 0.107 -0.0463 0.0743 -vn -0.0937 0 -0.996 +vn -0.0938 0 -0.996 v 0.108 -0.0463 0.0742 -vn -0.0937 0 -0.996 +vn -0.0938 0 -0.996 v 0.107 -0.0518 0.0743 -vn -0.0937 0 -0.996 +vn -0.0938 0 -0.996 v 0.107 -0.0518 0.0743 -vn -0.0937 0 -0.996 +vn -0.0938 0 -0.996 v 0.108 -0.0463 0.0742 -vn -0.0937 0 -0.996 +vn -0.0938 0 -0.996 v 0.108 -0.0518 0.0742 -vn -0.0937 0 -0.996 +vn -0.0938 0 -0.996 v 0.108 -0.0463 0.0742 vn -0.985 0 0.175 v 0.108 -0.0463 0.0724 @@ -26014,17 +26014,17 @@ vn -0.34 0 -0.94 v 0.0605 -0.0534 0.101 vn -0.34 0 -0.94 v 0.0605 -0.048 0.101 -vn 0.913 0 -0.408 +vn 0.913 0 -0.409 v 0.0616 -0.048 0.104 -vn 0.913 0 -0.408 +vn 0.913 0 -0.409 v 0.0605 -0.0534 0.101 -vn 0.913 0 -0.408 +vn 0.913 0 -0.409 v 0.0605 -0.0534 0.101 -vn 0.913 0 -0.408 +vn 0.913 0 -0.409 v 0.0616 -0.048 0.104 -vn 0.913 0 -0.408 +vn 0.913 0 -0.409 v 0.0616 -0.0534 0.104 -vn 0.913 0 -0.408 +vn 0.913 0 -0.409 v 0.0616 -0.048 0.104 vn 0.391 0 0.92 v 0.0572 -0.048 0.106 @@ -27112,17 +27112,17 @@ vn 0.877 0 0.481 v 0.194 -0.0354 0.121 vn 0.877 0 0.481 v 0.194 -0.03 0.121 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.196 -0.03 0.122 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.194 -0.0354 0.121 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.194 -0.0354 0.121 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.196 -0.03 0.122 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.196 -0.0354 0.122 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.196 -0.03 0.122 vn 0.877 0 0.481 v 0.194 -0.03 0.126 @@ -29170,17 +29170,17 @@ vn 0.494 0 0.87 v 0.174 -0.0403 0.159 vn 0.494 0 0.87 v 0.174 -0.0349 0.159 -vn -0.868 0 0.496 +vn -0.868 0 0.497 v 0.173 -0.0349 0.157 -vn -0.868 0 0.496 +vn -0.868 0 0.497 v 0.174 -0.0403 0.159 -vn -0.868 0 0.496 +vn -0.868 0 0.497 v 0.174 -0.0403 0.159 -vn -0.868 0 0.496 +vn -0.868 0 0.497 v 0.173 -0.0349 0.157 -vn -0.868 0 0.496 +vn -0.868 0 0.497 v 0.173 -0.0403 0.157 -vn -0.868 0 0.496 +vn -0.868 0 0.497 v 0.258 -0.0284 0.187 vn 0 1 0 v 0.256 -0.0284 0.187 @@ -32356,17 +32356,17 @@ vn 0.582 0 -0.813 v 0.146 -0.0485 0.17 vn 0.582 0 -0.813 v 0.146 -0.0431 0.17 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.145 -0.0431 0.172 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.146 -0.0485 0.17 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.146 -0.0485 0.17 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.145 -0.0431 0.172 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.145 -0.0485 0.172 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.145 -0.0431 0.172 vn -0.582 0 0.813 v 0.142 -0.0431 0.17 @@ -33934,17 +33934,17 @@ vn 1 0 -0.0108 v 0.0707 -0.0583 0.152 vn 1 0 -0.0108 v 0.0707 -0.0529 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0673 -0.0529 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0707 -0.0583 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0707 -0.0583 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0673 -0.0529 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0673 -0.0583 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0673 -0.0529 0.152 vn -1 0 -0.0151 v 0.0673 -0.0529 0.151 @@ -34570,17 +34570,17 @@ vn 0.999 0 0.0411 v 0.0996 -0.0551 0.144 vn 0.999 0 0.0411 v 0.0996 -0.0496 0.144 -vn -0.0391 0 0.999 +vn -0.0392 0 0.999 v 0.0976 -0.0496 0.144 -vn -0.0391 0 0.999 +vn -0.0392 0 0.999 v 0.0996 -0.0551 0.144 -vn -0.0391 0 0.999 +vn -0.0392 0 0.999 v 0.0996 -0.0551 0.144 -vn -0.0391 0 0.999 +vn -0.0392 0 0.999 v 0.0976 -0.0496 0.144 -vn -0.0391 0 0.999 +vn -0.0392 0 0.999 v 0.0976 -0.0551 0.144 -vn -0.0391 0 0.999 +vn -0.0392 0 0.999 v 0.0976 -0.0496 0.144 vn -0.999 0 -0.0426 v 0.0977 -0.0496 0.142 @@ -34642,17 +34642,17 @@ vn -0.096 0 -0.995 v 0.0891 -0.0583 0.155 vn -0.096 0 -0.995 v 0.0891 -0.0529 0.155 -vn 0.995 0 -0.0974 +vn 0.995 0 -0.0973 v 0.0891 -0.0529 0.156 -vn 0.995 0 -0.0974 +vn 0.995 0 -0.0973 v 0.0891 -0.0583 0.155 -vn 0.995 0 -0.0974 +vn 0.995 0 -0.0973 v 0.0891 -0.0583 0.155 -vn 0.995 0 -0.0974 +vn 0.995 0 -0.0973 v 0.0891 -0.0529 0.156 -vn 0.995 0 -0.0974 +vn 0.995 0 -0.0973 v 0.0891 -0.0583 0.156 -vn 0.995 0 -0.0974 +vn 0.995 0 -0.0973 v 0.0891 -0.0529 0.156 vn 0.995 0 -0.0948 v 0.0894 -0.0529 0.159 @@ -37282,17 +37282,17 @@ vn 1 0 0.00875 v 0.0708 -0.0583 0.16 vn 1 0 0.00875 v 0.0708 -0.0529 0.16 -vn -0.0098 0 1 +vn -0.00981 0 1 v 0.0685 -0.0529 0.16 -vn -0.0098 0 1 +vn -0.00981 0 1 v 0.0708 -0.0583 0.16 -vn -0.0098 0 1 +vn -0.00981 0 1 v 0.0708 -0.0583 0.16 -vn -0.0098 0 1 +vn -0.00981 0 1 v 0.0685 -0.0529 0.16 -vn -0.0098 0 1 +vn -0.00981 0 1 v 0.0685 -0.0583 0.16 -vn -0.0098 0 1 +vn -0.00981 0 1 v 0.0685 -0.0529 0.16 vn -1 0 -0.00885 v 0.0685 -0.0529 0.158 @@ -43664,17 +43664,17 @@ vn 0.0151 0 -1 v 0.282 -0.0142 0.0868 vn 0.0151 0 -1 v 0.282 -0.00872 0.0868 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.00872 0.0879 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.0142 0.0868 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.0142 0.0868 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.00872 0.0879 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.0142 0.0879 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.00872 0.0879 vn 0.0151 0 -1 v 0.285 -0.00872 0.0879 @@ -44450,17 +44450,17 @@ vn 0.628 0 0.778 v 0.422 0.0382 0.0445 vn 0.628 0 0.778 v 0.422 0.0436 0.0445 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.42 0.0436 0.0417 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.422 0.0382 0.0445 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.422 0.0382 0.0445 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.42 0.0436 0.0417 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.42 0.0382 0.0417 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.294 0.006 0.039 vn 0 1 0 v 0.297 0.006 0.0453 @@ -44804,17 +44804,17 @@ vn 0 1 0 v 0.276 -0.00872 0.0908 vn 0 1 0 v 0.272 -0.00872 0.0923 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.273 -0.00872 0.0906 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.272 -0.0142 0.0923 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.272 -0.0142 0.0923 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.273 -0.00872 0.0906 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.273 -0.0142 0.0906 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.273 -0.00872 0.0906 vn 0.0461 0 -0.999 v 0.276 -0.00872 0.0908 diff --git a/tests/testdata/control_files/3d/expected_big_scene_export/expected_big_scene_export-4.obj b/tests/testdata/control_files/3d/expected_big_scene_export/expected_big_scene_export-4.obj index 29a72ddf4018..cedda100ee9a 100644 --- a/tests/testdata/control_files/3d/expected_big_scene_export/expected_big_scene_export-4.obj +++ b/tests/testdata/control_files/3d/expected_big_scene_export/expected_big_scene_export-4.obj @@ -2282,17 +2282,17 @@ vn 0.474 0 -0.88 v -0.307 -0.0682 0.276 vn 0.474 0 -0.88 v -0.307 -0.0627 0.276 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.308 -0.0627 0.278 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.307 -0.0682 0.276 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.307 -0.0682 0.276 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.308 -0.0627 0.278 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.308 -0.0682 0.278 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.308 -0.0627 0.278 vn 0.883 0 0.47 v -0.309 -0.0627 0.28 @@ -2498,17 +2498,17 @@ vn 0.879 0 0.476 v -0.291 -0.0714 0.29 vn 0.879 0 0.476 v -0.291 -0.066 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.292 -0.066 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.291 -0.0714 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.291 -0.0714 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.292 -0.066 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.292 -0.0714 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.292 -0.066 0.29 vn -0.474 0 0.88 v -0.294 -0.066 0.289 @@ -2726,17 +2726,17 @@ vn 0.471 0 -0.882 v -0.285 -0.0714 0.289 vn 0.471 0 -0.882 v -0.285 -0.066 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.066 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.0714 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.0714 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.066 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.0714 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.066 0.289 vn 0.475 0 -0.88 v -0.283 -0.066 0.291 @@ -3586,17 +3586,17 @@ vn -0.0308 0 1 v -0.237 -0.0502 0.15 vn -0.0308 0 1 v -0.237 -0.0447 0.15 -vn -1 0 -0.0302 +vn -1 0 -0.0301 v -0.237 -0.0447 0.147 -vn -1 0 -0.0302 +vn -1 0 -0.0301 v -0.237 -0.0502 0.15 -vn -1 0 -0.0302 +vn -1 0 -0.0301 v -0.237 -0.0502 0.15 -vn -1 0 -0.0302 +vn -1 0 -0.0301 v -0.237 -0.0447 0.147 -vn -1 0 -0.0302 +vn -1 0 -0.0301 v -0.237 -0.0502 0.147 -vn -1 0 -0.0302 +vn -1 0 -0.0301 v -0.244 -0.0447 0.147 vn 0 1 0 v -0.244 -0.0447 0.152 @@ -3634,17 +3634,17 @@ vn 0.0296 0 -1 v -0.237 -0.0502 0.147 vn 0.0296 0 -1 v -0.237 -0.0447 0.147 -vn 1 0 0.0302 +vn 1 0 0.0301 v -0.237 -0.0447 0.15 -vn 1 0 0.0302 +vn 1 0 0.0301 v -0.237 -0.0502 0.147 -vn 1 0 0.0302 +vn 1 0 0.0301 v -0.237 -0.0502 0.147 -vn 1 0 0.0302 +vn 1 0 0.0301 v -0.237 -0.0447 0.15 -vn 1 0 0.0302 +vn 1 0 0.0301 v -0.237 -0.0502 0.15 -vn 1 0 0.0302 +vn 1 0 0.0301 v -0.237 -0.0447 0.15 vn -0.0294 0 1 v -0.241 -0.0447 0.15 @@ -3718,17 +3718,17 @@ vn -0.998 0 -0.0581 v -0.247 -0.0502 0.149 vn -0.998 0 -0.0581 v -0.247 -0.0447 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.245 -0.0447 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.247 -0.0502 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.247 -0.0502 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.245 -0.0447 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.245 -0.0502 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.245 -0.0447 0.149 vn 0.998 0 0.057 v -0.246 -0.0447 0.152 @@ -3940,29 +3940,29 @@ vn -0.0144 0 -1 v -0.301 -0.0583 0.141 vn -0.0144 0 -1 v -0.301 -0.0529 0.141 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0529 0.145 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0583 0.141 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0583 0.141 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0529 0.145 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0583 0.145 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0529 0.145 -vn 0.00049 0 1 +vn 0.000501 0 1 v -0.302 -0.0529 0.145 -vn 0.00049 0 1 +vn 0.000501 0 1 v -0.301 -0.0583 0.145 -vn 0.00049 0 1 +vn 0.000501 0 1 v -0.301 -0.0583 0.145 -vn 0.00049 0 1 +vn 0.000501 0 1 v -0.302 -0.0529 0.145 -vn 0.00049 0 1 +vn 0.000501 0 1 v -0.302 -0.0583 0.145 -vn 0.00049 0 1 +vn 0.000501 0 1 v -0.302 -0.0529 0.145 vn 1 0 -0.0275 v -0.302 -0.0529 0.147 @@ -4701,17 +4701,17 @@ vn 0 1 0 v -0.248 -0.0136 -0.0633 vn 0 1 0 v -0.259 -0.0136 -0.0634 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0136 -0.0657 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0191 -0.0634 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0191 -0.0634 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0136 -0.0657 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0191 -0.0657 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0136 -0.0657 vn 0.0152 0 -1 v -0.248 -0.0136 -0.0655 @@ -6533,17 +6533,17 @@ vn 0 1 0 v -0.212 -0.048 0.153 vn 0 1 0 v -0.216 -0.048 0.15 -vn 0.0514 0 -0.999 +vn 0.0513 0 -0.999 v -0.211 -0.048 0.15 -vn 0.0514 0 -0.999 +vn 0.0513 0 -0.999 v -0.216 -0.0534 0.15 -vn 0.0514 0 -0.999 +vn 0.0513 0 -0.999 v -0.216 -0.0534 0.15 -vn 0.0514 0 -0.999 +vn 0.0513 0 -0.999 v -0.211 -0.048 0.15 -vn 0.0514 0 -0.999 +vn 0.0513 0 -0.999 v -0.211 -0.0534 0.15 -vn 0.0514 0 -0.999 +vn 0.0513 0 -0.999 v -0.211 -0.048 0.15 vn 0.999 0 0.0516 v -0.212 -0.048 0.153 @@ -7241,17 +7241,17 @@ vn 0.0724 0 -0.997 v -0.153 -0.0583 0.144 vn 0.0724 0 -0.997 v -0.153 -0.0529 0.144 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0529 0.147 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0583 0.144 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0583 0.144 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0529 0.147 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0583 0.147 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0529 0.147 vn -0.088 0 0.996 v -0.172 -0.0529 0.146 @@ -7589,17 +7589,17 @@ vn -0.00872 0 -1 v -0.141 -0.0583 0.152 vn -0.00872 0 -1 v -0.141 -0.0529 0.152 -vn 1 0 -0.00923 +vn 1 0 -0.00924 v -0.141 -0.0529 0.155 -vn 1 0 -0.00923 +vn 1 0 -0.00924 v -0.141 -0.0583 0.152 -vn 1 0 -0.00923 +vn 1 0 -0.00924 v -0.141 -0.0583 0.152 -vn 1 0 -0.00923 +vn 1 0 -0.00924 v -0.141 -0.0529 0.155 -vn 1 0 -0.00923 +vn 1 0 -0.00924 v -0.141 -0.0583 0.155 -vn 1 0 -0.00923 +vn 1 0 -0.00924 v -0.141 -0.0529 0.155 vn 0.0106 0 1 v -0.144 -0.0529 0.155 @@ -7661,17 +7661,17 @@ vn 1 0 -0.0206 v -0.188 -0.0551 0.16 vn 1 0 -0.0206 v -0.188 -0.0496 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.191 -0.0496 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.188 -0.0551 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.188 -0.0551 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.191 -0.0496 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.191 -0.0551 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.191 -0.0496 0.16 vn -1 0 0.0206 v -0.191 -0.0496 0.155 @@ -11334,17 +11334,17 @@ vn 0 1 0 v -0.0224 -0.048 0.197 vn 0 1 0 v -0.0297 -0.048 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.026 -0.048 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.0297 -0.0534 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.0297 -0.0534 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.026 -0.048 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.026 -0.0534 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.026 -0.048 0.193 vn 1 0 0.00114 v -0.026 -0.048 0.197 @@ -11406,29 +11406,29 @@ vn -1 0 -0.000812 v -0.0285 -0.0534 0.196 vn -1 0 -0.000812 v -0.0285 -0.048 0.196 -vn -0.000612 0 1 +vn -0.000608 0 1 v -0.0297 -0.048 0.196 -vn -0.000612 0 1 +vn -0.000608 0 1 v -0.0285 -0.0534 0.196 -vn -0.000612 0 1 +vn -0.000608 0 1 v -0.0285 -0.0534 0.196 -vn -0.000612 0 1 +vn -0.000608 0 1 v -0.0297 -0.048 0.196 -vn -0.000612 0 1 +vn -0.000608 0 1 v -0.0297 -0.0534 0.196 -vn -0.000612 0 1 +vn -0.000608 0 1 v -0.0297 -0.048 0.196 -vn -1 0 -0.00092 +vn -1 0 -0.000919 v -0.0297 -0.048 0.193 -vn -1 0 -0.00092 +vn -1 0 -0.000919 v -0.0297 -0.0534 0.196 -vn -1 0 -0.00092 +vn -1 0 -0.000919 v -0.0297 -0.0534 0.196 -vn -1 0 -0.00092 +vn -1 0 -0.000919 v -0.0297 -0.048 0.193 -vn -1 0 -0.00092 +vn -1 0 -0.000919 v -0.0297 -0.0534 0.193 -vn -1 0 -0.00092 +vn -1 0 -0.000919 v -0.0338 -0.0496 0.197 vn 0 1 0 v -0.0374 -0.0496 0.197 @@ -11466,17 +11466,17 @@ vn 0 1 0 v -0.0297 -0.0496 0.193 vn 0 1 0 v -0.0297 -0.0496 0.193 -vn 1 0 0.00092 +vn 1 0 0.000919 v -0.0297 -0.0496 0.196 -vn 1 0 0.00092 +vn 1 0 0.000919 v -0.0297 -0.0551 0.193 -vn 1 0 0.00092 +vn 1 0 0.000919 v -0.0297 -0.0551 0.193 -vn 1 0 0.00092 +vn 1 0 0.000919 v -0.0297 -0.0496 0.196 -vn 1 0 0.00092 +vn 1 0 0.000919 v -0.0297 -0.0551 0.196 -vn 1 0 0.00092 +vn 1 0 0.000919 v -0.0297 -0.0496 0.196 vn -0.00321 0 1 v -0.0313 -0.0496 0.196 @@ -11514,29 +11514,29 @@ vn -0.00126 0 1 v -0.0374 -0.0551 0.201 vn -0.00126 0 1 v -0.0374 -0.0496 0.201 -vn -1 0 -0.000968 +vn -1 0 -0.000969 v -0.0374 -0.0496 0.197 -vn -1 0 -0.000968 +vn -1 0 -0.000969 v -0.0374 -0.0551 0.201 -vn -1 0 -0.000968 +vn -1 0 -0.000969 v -0.0374 -0.0551 0.201 -vn -1 0 -0.000968 +vn -1 0 -0.000969 v -0.0374 -0.0496 0.197 -vn -1 0 -0.000968 +vn -1 0 -0.000969 v -0.0374 -0.0551 0.197 -vn -1 0 -0.000968 +vn -1 0 -0.000969 v -0.0374 -0.0496 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0338 -0.0496 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0374 -0.0551 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0374 -0.0551 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0338 -0.0496 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0338 -0.0551 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0338 -0.0496 0.197 vn -1 0 -0.00115 v -0.0338 -0.0496 0.193 @@ -11550,17 +11550,17 @@ vn -1 0 -0.00115 v -0.0338 -0.0551 0.193 vn -1 0 -0.00115 v -0.0338 -0.0496 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0297 -0.0496 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0338 -0.0551 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0338 -0.0551 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0297 -0.0496 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0297 -0.0551 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0524 -0.0529 0.201 vn 0 1 0 v -0.0524 -0.0529 0.207 @@ -11586,17 +11586,17 @@ vn 0 1 0 v -0.044 -0.0529 0.204 vn 0 1 0 v -0.0524 -0.0529 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0485 -0.0529 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0524 -0.0583 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0524 -0.0583 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0485 -0.0529 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0485 -0.0583 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0485 -0.0529 0.201 vn 1 0 0.0011 v -0.0485 -0.0529 0.204 @@ -11634,17 +11634,17 @@ vn 1 0 0.00162 v -0.044 -0.0583 0.207 vn 1 0 0.00162 v -0.044 -0.0529 0.207 -vn -0.000634 0 1 +vn -0.000636 0 1 v -0.0524 -0.0529 0.207 -vn -0.000634 0 1 +vn -0.000636 0 1 v -0.044 -0.0583 0.207 -vn -0.000634 0 1 +vn -0.000636 0 1 v -0.044 -0.0583 0.207 -vn -0.000634 0 1 +vn -0.000636 0 1 v -0.0524 -0.0529 0.207 -vn -0.000634 0 1 +vn -0.000636 0 1 v -0.0524 -0.0583 0.207 -vn -0.000634 0 1 +vn -0.000636 0 1 v -0.0524 -0.0529 0.207 vn -1 0 -0.00134 v -0.0524 -0.0529 0.201 @@ -11844,17 +11844,17 @@ vn 0 1 0 v -0.0463 -0.0513 0.186 vn 0 1 0 v -0.0513 -0.0513 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0499 -0.0513 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0513 -0.0567 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0513 -0.0567 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0499 -0.0513 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0499 -0.0567 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0499 -0.0513 0.182 vn -0.0182 0 -1 v -0.0464 -0.0513 0.182 @@ -12378,17 +12378,17 @@ vn 0 1 0 v -0.0423 -0.048 0.17 vn 0 1 0 v -0.0453 -0.048 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0424 -0.048 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0453 -0.0534 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0453 -0.0534 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0424 -0.048 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0424 -0.0534 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0424 -0.048 0.165 vn 1 0 -0.0167 v -0.0423 -0.048 0.17 @@ -12402,17 +12402,17 @@ vn 1 0 -0.0167 v -0.0423 -0.0534 0.17 vn 1 0 -0.0167 v -0.0423 -0.048 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0452 -0.048 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0423 -0.0534 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0423 -0.0534 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0452 -0.048 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0452 -0.0534 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0452 -0.048 0.17 vn -1 0 0.0167 v -0.0453 -0.048 0.165 @@ -14124,17 +14124,17 @@ vn 0 1 0 v 0.00615 -0.0398 0.16 vn 0 1 0 v 0.000675 -0.0398 0.164 -vn -1 0 -0.00085 +vn -1 0 -0.000851 v 0.00068 -0.0398 0.158 -vn -1 0 -0.00085 +vn -1 0 -0.000851 v 0.000675 -0.0453 0.164 -vn -1 0 -0.00085 +vn -1 0 -0.000851 v 0.000675 -0.0453 0.164 -vn -1 0 -0.00085 +vn -1 0 -0.000851 v 0.00068 -0.0398 0.158 -vn -1 0 -0.00085 +vn -1 0 -0.000851 v 0.00068 -0.0453 0.158 -vn -1 0 -0.00085 +vn -1 0 -0.000851 v 0.00068 -0.0398 0.158 vn 0.00159 0 -1 v 0.00247 -0.0398 0.158 @@ -14160,17 +14160,17 @@ vn -1 0 0.00135 v 0.00247 -0.0453 0.157 vn -1 0 0.00135 v 0.00247 -0.0398 0.157 -vn 0.000759 0 -1 +vn 0.000758 0 -1 v 0.00626 -0.0398 0.157 -vn 0.000759 0 -1 +vn 0.000758 0 -1 v 0.00247 -0.0453 0.157 -vn 0.000759 0 -1 +vn 0.000758 0 -1 v 0.00247 -0.0453 0.157 -vn 0.000759 0 -1 +vn 0.000758 0 -1 v 0.00626 -0.0398 0.157 -vn 0.000759 0 -1 +vn 0.000758 0 -1 v 0.00626 -0.0453 0.157 -vn 0.000759 0 -1 +vn 0.000758 0 -1 v 0.00626 -0.0398 0.157 vn 1 0 0.00134 v 0.00626 -0.0398 0.158 @@ -14184,29 +14184,29 @@ vn 1 0 0.00134 v 0.00626 -0.0453 0.158 vn 1 0 0.00134 v 0.00626 -0.0398 0.158 -vn -0.00709 0 1 +vn -0.0071 0 1 v 0.0055 -0.0398 0.158 -vn -0.00709 0 1 +vn -0.0071 0 1 v 0.00626 -0.0453 0.158 -vn -0.00709 0 1 +vn -0.0071 0 1 v 0.00626 -0.0453 0.158 -vn -0.00709 0 1 +vn -0.0071 0 1 v 0.0055 -0.0398 0.158 -vn -0.00709 0 1 +vn -0.0071 0 1 v 0.0055 -0.0453 0.158 -vn -0.00709 0 1 +vn -0.0071 0 1 v 0.0055 -0.0398 0.158 -vn 1 0 0.000833 +vn 1 0 0.000831 v 0.0055 -0.0398 0.16 -vn 1 0 0.000833 +vn 1 0 0.000831 v 0.0055 -0.0453 0.158 -vn 1 0 0.000833 +vn 1 0 0.000831 v 0.0055 -0.0453 0.158 -vn 1 0 0.000833 +vn 1 0 0.000831 v 0.0055 -0.0398 0.16 -vn 1 0 0.000833 +vn 1 0 0.000831 v 0.0055 -0.0453 0.16 -vn 1 0 0.000833 +vn 1 0 0.000831 v 0.0055 -0.0398 0.16 vn -0.00351 0 -1 v 0.00615 -0.0398 0.16 @@ -14298,17 +14298,17 @@ vn -1 0 -0.00363 v -0.000303 -0.0469 0.164 vn -1 0 -0.00363 v -0.000303 -0.0414 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v 0.000675 -0.0414 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v -0.000303 -0.0469 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v -0.000303 -0.0469 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v 0.000675 -0.0414 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v 0.000675 -0.0469 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v 0.000675 -0.0414 0.164 vn 0.00276 0 -1 v 0.0041 -0.0414 0.164 @@ -17901,17 +17901,17 @@ vn -1 0 -0.00929 v 0.0624 -0.0583 0.154 vn -1 0 -0.00929 v 0.0624 -0.0529 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0615 -0.0529 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0624 -0.0583 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0624 -0.0583 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0615 -0.0529 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0615 -0.0583 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0615 -0.0529 0.154 vn -1 0 -0.00721 v 0.0615 -0.0529 0.153 @@ -21333,17 +21333,17 @@ vn 1 0 -0.0108 v 0.0707 -0.0583 0.152 vn 1 0 -0.0108 v 0.0707 -0.0529 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0673 -0.0529 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0707 -0.0583 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0707 -0.0583 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0673 -0.0529 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0673 -0.0583 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0673 -0.0529 0.152 vn -1 0 -0.0151 v 0.0673 -0.0529 0.151 @@ -21789,17 +21789,17 @@ vn 0.999 0 0.0411 v 0.0996 -0.0551 0.144 vn 0.999 0 0.0411 v 0.0996 -0.0496 0.144 -vn -0.0391 0 0.999 +vn -0.0392 0 0.999 v 0.0976 -0.0496 0.144 -vn -0.0391 0 0.999 +vn -0.0392 0 0.999 v 0.0996 -0.0551 0.144 -vn -0.0391 0 0.999 +vn -0.0392 0 0.999 v 0.0996 -0.0551 0.144 -vn -0.0391 0 0.999 +vn -0.0392 0 0.999 v 0.0976 -0.0496 0.144 -vn -0.0391 0 0.999 +vn -0.0392 0 0.999 v 0.0976 -0.0551 0.144 -vn -0.0391 0 0.999 +vn -0.0392 0 0.999 v 0.0976 -0.0496 0.144 vn -0.999 0 -0.0426 v 0.0977 -0.0496 0.142 @@ -24291,17 +24291,17 @@ vn 1 0 0.00875 v 0.0708 -0.0583 0.16 vn 1 0 0.00875 v 0.0708 -0.0529 0.16 -vn -0.0098 0 1 +vn -0.00981 0 1 v 0.0685 -0.0529 0.16 -vn -0.0098 0 1 +vn -0.00981 0 1 v 0.0708 -0.0583 0.16 -vn -0.0098 0 1 +vn -0.00981 0 1 v 0.0708 -0.0583 0.16 -vn -0.0098 0 1 +vn -0.00981 0 1 v 0.0685 -0.0529 0.16 -vn -0.0098 0 1 +vn -0.00981 0 1 v 0.0685 -0.0583 0.16 -vn -0.0098 0 1 +vn -0.00981 0 1 v 0.0685 -0.0529 0.16 vn -1 0 -0.00885 v 0.0685 -0.0529 0.158 @@ -26380,17 +26380,17 @@ vn -0.951 0 0.31 v 0.107 -0.0518 0.0743 vn -0.951 0 0.31 v 0.107 -0.0463 0.0743 -vn -0.0937 0 -0.996 +vn -0.0938 0 -0.996 v 0.108 -0.0463 0.0742 -vn -0.0937 0 -0.996 +vn -0.0938 0 -0.996 v 0.107 -0.0518 0.0743 -vn -0.0937 0 -0.996 +vn -0.0938 0 -0.996 v 0.107 -0.0518 0.0743 -vn -0.0937 0 -0.996 +vn -0.0938 0 -0.996 v 0.108 -0.0463 0.0742 -vn -0.0937 0 -0.996 +vn -0.0938 0 -0.996 v 0.108 -0.0518 0.0742 -vn -0.0937 0 -0.996 +vn -0.0938 0 -0.996 v 0.108 -0.0463 0.0742 vn -0.985 0 0.175 v 0.108 -0.0463 0.0724 @@ -30508,17 +30508,17 @@ vn -0.0107 0 -1 v 0.217 -0.0583 0.449 vn -0.0107 0 -1 v 0.217 -0.0529 0.449 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0529 0.459 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0583 0.449 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0583 0.449 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0529 0.459 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0583 0.459 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0529 0.459 vn -0.0197 0 1 v 0.213 -0.0529 0.458 @@ -30544,17 +30544,17 @@ vn -1 0 -0.00435 v 0.213 -0.0583 0.454 vn -1 0 -0.00435 v 0.213 -0.0529 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.208 -0.0529 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.213 -0.0583 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.213 -0.0583 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.208 -0.0529 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.208 -0.0583 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.208 -0.0529 0.454 vn -1 0 0.019 v 0.207 -0.0529 0.444 @@ -31810,41 +31810,41 @@ vn -1 0 0.00184 v 0.227 -0.06 0.444 vn -1 0 0.00184 v 0.227 -0.0545 0.444 -vn 0.00115 0 -1 +vn 0.00116 0 -1 v 0.228 -0.0545 0.444 -vn 0.00115 0 -1 +vn 0.00116 0 -1 v 0.227 -0.06 0.444 -vn 0.00115 0 -1 +vn 0.00116 0 -1 v 0.227 -0.06 0.444 -vn 0.00115 0 -1 +vn 0.00116 0 -1 v 0.228 -0.0545 0.444 -vn 0.00115 0 -1 +vn 0.00116 0 -1 v 0.228 -0.06 0.444 -vn 0.00115 0 -1 +vn 0.00116 0 -1 v 0.228 -0.0545 0.444 -vn -1 0 0.00089 +vn -1 0 0.000891 v 0.228 -0.0545 0.439 -vn -1 0 0.00089 +vn -1 0 0.000891 v 0.228 -0.06 0.444 -vn -1 0 0.00089 +vn -1 0 0.000891 v 0.228 -0.06 0.444 -vn -1 0 0.00089 +vn -1 0 0.000891 v 0.228 -0.0545 0.439 -vn -1 0 0.00089 +vn -1 0 0.000891 v 0.228 -0.06 0.439 -vn -1 0 0.00089 +vn -1 0 0.000891 v 0.228 -0.0545 0.439 -vn -0.000733 0 -1 +vn -0.000736 0 -1 v 0.232 -0.0545 0.439 -vn -0.000733 0 -1 +vn -0.000736 0 -1 v 0.228 -0.06 0.439 -vn -0.000733 0 -1 +vn -0.000736 0 -1 v 0.228 -0.06 0.439 -vn -0.000733 0 -1 +vn -0.000736 0 -1 v 0.232 -0.0545 0.439 -vn -0.000733 0 -1 +vn -0.000736 0 -1 v 0.232 -0.06 0.439 -vn -0.000733 0 -1 +vn -0.000736 0 -1 v 0.232 -0.0545 0.439 vn 1 0 -0.00192 v 0.232 -0.0545 0.443 @@ -31882,29 +31882,29 @@ vn 1 0 0.00107 v 0.231 -0.06 0.444 vn 1 0 0.00107 v 0.231 -0.0545 0.444 -vn -0.00205 0 -1 +vn -0.00206 0 -1 v 0.233 -0.0545 0.444 -vn -0.00205 0 -1 +vn -0.00206 0 -1 v 0.231 -0.06 0.444 -vn -0.00205 0 -1 +vn -0.00206 0 -1 v 0.231 -0.06 0.444 -vn -0.00205 0 -1 +vn -0.00206 0 -1 v 0.233 -0.0545 0.444 -vn -0.00205 0 -1 +vn -0.00206 0 -1 v 0.233 -0.06 0.444 -vn -0.00205 0 -1 +vn -0.00206 0 -1 v 0.233 -0.0545 0.444 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.0545 0.446 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.06 0.444 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.06 0.444 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.0545 0.446 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.06 0.446 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.0545 0.446 vn -0.0268 0 1 v 0.232 -0.0545 0.445 @@ -32785,17 +32785,17 @@ vn 0.538 0 0.843 v 0.258 -0.0485 0.36 vn 0.538 0 0.843 v 0.258 -0.0431 0.36 -vn -0.0131 0 1 +vn -0.0152 0 1 v 0.258 -0.0431 0.36 -vn -0.0131 0 1 +vn -0.0152 0 1 v 0.258 -0.0485 0.36 -vn -0.0131 0 1 +vn -0.0152 0 1 v 0.258 -0.0485 0.36 -vn -0.0131 0 1 +vn -0.0152 0 1 v 0.258 -0.0431 0.36 -vn -0.0131 0 1 +vn -0.0152 0 1 v 0.258 -0.0485 0.36 -vn -0.0131 0 1 +vn -0.0152 0 1 v 0.258 -0.0431 0.36 vn -0.854 0 0.52 v 0.258 -0.0431 0.36 @@ -33537,17 +33537,17 @@ vn 0.877 0 0.481 v 0.194 -0.0354 0.121 vn 0.877 0 0.481 v 0.194 -0.03 0.121 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.196 -0.03 0.122 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.194 -0.0354 0.121 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.194 -0.0354 0.121 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.196 -0.03 0.122 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.196 -0.0354 0.122 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.196 -0.03 0.122 vn 0.877 0 0.481 v 0.194 -0.03 0.126 @@ -35235,17 +35235,17 @@ vn 0.494 0 0.87 v 0.174 -0.0403 0.159 vn 0.494 0 0.87 v 0.174 -0.0349 0.159 -vn -0.868 0 0.496 +vn -0.868 0 0.497 v 0.173 -0.0349 0.157 -vn -0.868 0 0.496 +vn -0.868 0 0.497 v 0.174 -0.0403 0.159 -vn -0.868 0 0.496 +vn -0.868 0 0.497 v 0.174 -0.0403 0.159 -vn -0.868 0 0.496 +vn -0.868 0 0.497 v 0.173 -0.0349 0.157 -vn -0.868 0 0.496 +vn -0.868 0 0.497 v 0.173 -0.0403 0.157 -vn -0.868 0 0.496 +vn -0.868 0 0.497 v 0.258 -0.0284 0.187 vn 0 1 0 v 0.256 -0.0284 0.187 @@ -37155,17 +37155,17 @@ vn 0.582 0 -0.813 v 0.146 -0.0485 0.17 vn 0.582 0 -0.813 v 0.146 -0.0431 0.17 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.145 -0.0431 0.172 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.146 -0.0485 0.17 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.146 -0.0485 0.17 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.145 -0.0431 0.172 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.145 -0.0485 0.172 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.145 -0.0431 0.172 vn -0.582 0 0.813 v 0.142 -0.0431 0.17 @@ -44555,17 +44555,17 @@ vn 0.0151 0 -1 v 0.282 -0.0142 0.0868 vn 0.0151 0 -1 v 0.282 -0.00872 0.0868 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.00872 0.0879 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.0142 0.0868 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.0142 0.0868 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.00872 0.0879 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.0142 0.0879 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.00872 0.0879 vn 0.0151 0 -1 v 0.285 -0.00872 0.0879 @@ -45479,17 +45479,17 @@ vn 0 1 0 v 0.276 -0.00872 0.0908 vn 0 1 0 v 0.272 -0.00872 0.0923 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.273 -0.00872 0.0906 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.272 -0.0142 0.0923 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.272 -0.0142 0.0923 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.273 -0.00872 0.0906 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.273 -0.0142 0.0906 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.273 -0.00872 0.0906 vn 0.0461 0 -0.999 v 0.276 -0.00872 0.0908 @@ -46175,17 +46175,17 @@ vn 0.628 0 0.778 v 0.422 0.0382 0.0445 vn 0.628 0 0.778 v 0.422 0.0436 0.0445 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.42 0.0436 0.0417 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.422 0.0382 0.0445 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.422 0.0382 0.0445 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.42 0.0436 0.0417 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.42 0.0382 0.0417 -vn -0.776 0 0.631 +vn -0.776 0 0.63 f -78//-78 -77//-77 -76//-76 f -75//-75 -74//-74 -73//-73 f -72//-72 -71//-71 -70//-70 diff --git a/tests/testdata/control_files/3d/expected_big_scene_export/expected_big_scene_export-5.obj b/tests/testdata/control_files/3d/expected_big_scene_export/expected_big_scene_export-5.obj index bf50be615333..088e511c2dd8 100644 --- a/tests/testdata/control_files/3d/expected_big_scene_export/expected_big_scene_export-5.obj +++ b/tests/testdata/control_files/3d/expected_big_scene_export/expected_big_scene_export-5.obj @@ -4336,17 +4336,17 @@ vn 0.877 0 0.481 v 0.194 -0.0354 0.121 vn 0.877 0 0.481 v 0.194 -0.03 0.121 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.196 -0.03 0.122 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.194 -0.0354 0.121 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.194 -0.0354 0.121 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.196 -0.03 0.122 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.196 -0.0354 0.122 -vn 0.478 0 -0.878 +vn 0.478 0 -0.879 v 0.196 -0.03 0.122 vn 0.877 0 0.481 v 0.194 -0.03 0.126 @@ -5590,17 +5590,17 @@ vn 0.582 0 -0.813 v 0.146 -0.0485 0.17 vn 0.582 0 -0.813 v 0.146 -0.0431 0.17 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.145 -0.0431 0.172 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.146 -0.0485 0.17 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.146 -0.0485 0.17 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.145 -0.0431 0.172 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.145 -0.0485 0.172 -vn 0.812 0 0.583 +vn 0.813 0 0.583 v 0.145 -0.0431 0.172 vn -0.582 0 0.813 v 0.142 -0.0431 0.17 @@ -7689,17 +7689,17 @@ vn -0.0107 0 -1 v 0.217 -0.0583 0.449 vn -0.0107 0 -1 v 0.217 -0.0529 0.449 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0529 0.459 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0583 0.449 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0583 0.449 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0529 0.459 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0583 0.459 -vn 1 0 0.00467 +vn 1 0 0.00468 v 0.217 -0.0529 0.459 vn -0.0197 0 1 v 0.213 -0.0529 0.458 @@ -7725,17 +7725,17 @@ vn -1 0 -0.00435 v 0.213 -0.0583 0.454 vn -1 0 -0.00435 v 0.213 -0.0529 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.208 -0.0529 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.213 -0.0583 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.213 -0.0583 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.208 -0.0529 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.208 -0.0583 0.454 -vn 0.0248 0 1 +vn 0.0247 0 1 v 0.208 -0.0529 0.454 vn -1 0 0.019 v 0.207 -0.0529 0.444 @@ -8991,41 +8991,41 @@ vn -1 0 0.00184 v 0.227 -0.06 0.444 vn -1 0 0.00184 v 0.227 -0.0545 0.444 -vn 0.00115 0 -1 +vn 0.00116 0 -1 v 0.228 -0.0545 0.444 -vn 0.00115 0 -1 +vn 0.00116 0 -1 v 0.227 -0.06 0.444 -vn 0.00115 0 -1 +vn 0.00116 0 -1 v 0.227 -0.06 0.444 -vn 0.00115 0 -1 +vn 0.00116 0 -1 v 0.228 -0.0545 0.444 -vn 0.00115 0 -1 +vn 0.00116 0 -1 v 0.228 -0.06 0.444 -vn 0.00115 0 -1 +vn 0.00116 0 -1 v 0.228 -0.0545 0.444 -vn -1 0 0.00089 +vn -1 0 0.000891 v 0.228 -0.0545 0.439 -vn -1 0 0.00089 +vn -1 0 0.000891 v 0.228 -0.06 0.444 -vn -1 0 0.00089 +vn -1 0 0.000891 v 0.228 -0.06 0.444 -vn -1 0 0.00089 +vn -1 0 0.000891 v 0.228 -0.0545 0.439 -vn -1 0 0.00089 +vn -1 0 0.000891 v 0.228 -0.06 0.439 -vn -1 0 0.00089 +vn -1 0 0.000891 v 0.228 -0.0545 0.439 -vn -0.000733 0 -1 +vn -0.000736 0 -1 v 0.232 -0.0545 0.439 -vn -0.000733 0 -1 +vn -0.000736 0 -1 v 0.228 -0.06 0.439 -vn -0.000733 0 -1 +vn -0.000736 0 -1 v 0.228 -0.06 0.439 -vn -0.000733 0 -1 +vn -0.000736 0 -1 v 0.232 -0.0545 0.439 -vn -0.000733 0 -1 +vn -0.000736 0 -1 v 0.232 -0.06 0.439 -vn -0.000733 0 -1 +vn -0.000736 0 -1 v 0.232 -0.0545 0.439 vn 1 0 -0.00192 v 0.232 -0.0545 0.443 @@ -9063,29 +9063,29 @@ vn 1 0 0.00107 v 0.231 -0.06 0.444 vn 1 0 0.00107 v 0.231 -0.0545 0.444 -vn -0.00205 0 -1 +vn -0.00206 0 -1 v 0.233 -0.0545 0.444 -vn -0.00205 0 -1 +vn -0.00206 0 -1 v 0.231 -0.06 0.444 -vn -0.00205 0 -1 +vn -0.00206 0 -1 v 0.231 -0.06 0.444 -vn -0.00205 0 -1 +vn -0.00206 0 -1 v 0.233 -0.0545 0.444 -vn -0.00205 0 -1 +vn -0.00206 0 -1 v 0.233 -0.06 0.444 -vn -0.00205 0 -1 +vn -0.00206 0 -1 v 0.233 -0.0545 0.444 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.0545 0.446 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.06 0.444 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.06 0.444 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.0545 0.446 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.06 0.446 -vn 1 0 -0.00202 +vn 1 0 -0.00203 v 0.233 -0.0545 0.446 vn -0.0268 0 1 v 0.232 -0.0545 0.445 @@ -9644,17 +9644,17 @@ vn 0.538 0 0.843 v 0.258 -0.0485 0.36 vn 0.538 0 0.843 v 0.258 -0.0431 0.36 -vn -0.0131 0 1 +vn -0.015 0 1 v 0.258 -0.0431 0.36 -vn -0.0131 0 1 +vn -0.015 0 1 v 0.258 -0.0485 0.36 -vn -0.0131 0 1 +vn -0.015 0 1 v 0.258 -0.0485 0.36 -vn -0.0131 0 1 +vn -0.015 0 1 v 0.258 -0.0431 0.36 -vn -0.0131 0 1 +vn -0.015 0 1 v 0.258 -0.0485 0.36 -vn -0.0131 0 1 +vn -0.015 0 1 v 0.258 -0.0431 0.36 vn -0.854 0 0.52 v 0.258 -0.0431 0.36 @@ -16681,17 +16681,17 @@ vn 0.0151 0 -1 v 0.282 -0.0142 0.0868 vn 0.0151 0 -1 v 0.282 -0.00872 0.0868 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.00872 0.0879 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.0142 0.0868 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.0142 0.0868 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.00872 0.0879 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.0142 0.0879 -vn 1 0 0.015 +vn 1 0 0.0151 v 0.282 -0.00872 0.0879 vn 0.0151 0 -1 v 0.285 -0.00872 0.0879 @@ -17359,17 +17359,17 @@ vn 0 1 0 v 0.276 -0.00872 0.0908 vn 0 1 0 v 0.272 -0.00872 0.0923 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.273 -0.00872 0.0906 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.272 -0.0142 0.0923 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.272 -0.0142 0.0923 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.273 -0.00872 0.0906 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.273 -0.0142 0.0906 -vn -0.999 0 -0.0451 +vn -0.999 0 -0.0452 v 0.273 -0.00872 0.0906 vn 0.0461 0 -0.999 v 0.276 -0.00872 0.0908 @@ -18529,17 +18529,17 @@ vn 0.628 0 0.778 v 0.422 0.0382 0.0445 vn 0.628 0 0.778 v 0.422 0.0436 0.0445 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.42 0.0436 0.0417 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.422 0.0382 0.0445 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.422 0.0382 0.0445 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.42 0.0436 0.0417 -vn -0.776 0 0.631 +vn -0.776 0 0.63 v 0.42 0.0382 0.0417 -vn -0.776 0 0.631 +vn -0.776 0 0.63 f -48//-48 -47//-47 -46//-46 f -45//-45 -44//-44 -43//-43 f -42//-42 -41//-41 -40//-40 @@ -19765,17 +19765,17 @@ vn 0.474 0 -0.88 v -0.307 -0.0682 0.276 vn 0.474 0 -0.88 v -0.307 -0.0627 0.276 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.308 -0.0627 0.278 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.307 -0.0682 0.276 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.307 -0.0682 0.276 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.308 -0.0627 0.278 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.308 -0.0682 0.278 -vn 0.876 0 0.482 +vn 0.876 0 0.481 v -0.308 -0.0627 0.278 vn 0.883 0 0.47 v -0.309 -0.0627 0.28 @@ -20512,29 +20512,29 @@ vn -0.0144 0 -1 v -0.301 -0.0583 0.141 vn -0.0144 0 -1 v -0.301 -0.0529 0.141 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0529 0.145 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0583 0.141 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0583 0.141 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0529 0.145 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0583 0.145 -vn 1 0 -0.00659 +vn 1 0 -0.00658 v -0.301 -0.0529 0.145 -vn 0.00049 0 1 +vn 0.000499 0 1 v -0.302 -0.0529 0.145 -vn 0.00049 0 1 +vn 0.000499 0 1 v -0.301 -0.0583 0.145 -vn 0.00049 0 1 +vn 0.000499 0 1 v -0.301 -0.0583 0.145 -vn 0.00049 0 1 +vn 0.000499 0 1 v -0.302 -0.0529 0.145 -vn 0.00049 0 1 +vn 0.000499 0 1 v -0.302 -0.0583 0.145 -vn 0.00049 0 1 +vn 0.000499 0 1 v -0.302 -0.0529 0.145 vn 1 0 -0.0275 v -0.302 -0.0529 0.147 @@ -21243,17 +21243,17 @@ vn 0.879 0 0.476 v -0.291 -0.0714 0.29 vn 0.879 0 0.476 v -0.291 -0.066 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.292 -0.066 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.291 -0.0714 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.291 -0.0714 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.292 -0.066 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.292 -0.0714 0.29 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.292 -0.066 0.29 vn -0.474 0 0.88 v -0.294 -0.066 0.289 @@ -21471,17 +21471,17 @@ vn 0.471 0 -0.882 v -0.285 -0.0714 0.289 vn 0.471 0 -0.882 v -0.285 -0.066 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.066 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.0714 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.0714 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.066 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.0714 0.289 -vn 0.878 0 0.478 +vn 0.879 0 0.478 v -0.285 -0.066 0.289 vn 0.475 0 -0.88 v -0.283 -0.066 0.291 @@ -21934,17 +21934,17 @@ vn -0.0308 0 1 v -0.237 -0.0502 0.15 vn -0.0308 0 1 v -0.237 -0.0447 0.15 -vn -1 0 -0.0302 +vn -1 0 -0.0301 v -0.237 -0.0447 0.147 -vn -1 0 -0.0302 +vn -1 0 -0.0301 v -0.237 -0.0502 0.15 -vn -1 0 -0.0302 +vn -1 0 -0.0301 v -0.237 -0.0502 0.15 -vn -1 0 -0.0302 +vn -1 0 -0.0301 v -0.237 -0.0447 0.147 -vn -1 0 -0.0302 +vn -1 0 -0.0301 v -0.237 -0.0502 0.147 -vn -1 0 -0.0302 +vn -1 0 -0.0301 v -0.244 -0.0447 0.147 vn 0 1 0 v -0.244 -0.0447 0.152 @@ -21982,17 +21982,17 @@ vn 0.0296 0 -1 v -0.237 -0.0502 0.147 vn 0.0296 0 -1 v -0.237 -0.0447 0.147 -vn 1 0 0.0302 +vn 1 0 0.0301 v -0.237 -0.0447 0.15 -vn 1 0 0.0302 +vn 1 0 0.0301 v -0.237 -0.0502 0.147 -vn 1 0 0.0302 +vn 1 0 0.0301 v -0.237 -0.0502 0.147 -vn 1 0 0.0302 +vn 1 0 0.0301 v -0.237 -0.0447 0.15 -vn 1 0 0.0302 +vn 1 0 0.0301 v -0.237 -0.0502 0.15 -vn 1 0 0.0302 +vn 1 0 0.0301 v -0.237 -0.0447 0.15 vn -0.0294 0 1 v -0.241 -0.0447 0.15 @@ -22066,17 +22066,17 @@ vn -0.998 0 -0.0581 v -0.247 -0.0502 0.149 vn -0.998 0 -0.0581 v -0.247 -0.0447 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.245 -0.0447 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.247 -0.0502 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.247 -0.0502 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.245 -0.0447 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.245 -0.0502 0.149 -vn 0.0575 0 -0.998 +vn 0.0576 0 -0.998 v -0.245 -0.0447 0.149 vn 0.998 0 0.057 v -0.246 -0.0447 0.152 @@ -23218,17 +23218,17 @@ vn 0 1 0 v -0.248 -0.0136 -0.0633 vn 0 1 0 v -0.259 -0.0136 -0.0634 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0136 -0.0657 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0191 -0.0634 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0191 -0.0634 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0136 -0.0657 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0191 -0.0657 -vn -1 0 -0.0153 +vn -1 0 -0.0152 v -0.259 -0.0136 -0.0657 vn 0.0152 0 -1 v -0.248 -0.0136 -0.0655 @@ -24414,17 +24414,17 @@ vn 1 0 -0.0206 v -0.188 -0.0551 0.16 vn 1 0 -0.0206 v -0.188 -0.0496 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.191 -0.0496 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.188 -0.0551 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.188 -0.0551 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.191 -0.0496 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.191 -0.0551 0.16 -vn 0.0198 0 1 +vn 0.0199 0 1 v -0.191 -0.0496 0.16 vn -1 0 0.0206 v -0.191 -0.0496 0.155 @@ -25758,17 +25758,17 @@ vn 0.0724 0 -0.997 v -0.153 -0.0583 0.144 vn 0.0724 0 -0.997 v -0.153 -0.0529 0.144 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0529 0.147 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0583 0.144 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0583 0.144 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0529 0.147 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0583 0.147 -vn 0.996 0 0.0897 +vn 0.996 0 0.0896 v -0.153 -0.0529 0.147 vn -0.088 0 0.996 v -0.172 -0.0529 0.146 @@ -26046,17 +26046,17 @@ vn -0.00872 0 -1 v -0.141 -0.0583 0.152 vn -0.00872 0 -1 v -0.141 -0.0529 0.152 -vn 1 0 -0.00923 +vn 1 0 -0.00924 v -0.141 -0.0529 0.155 -vn 1 0 -0.00923 +vn 1 0 -0.00924 v -0.141 -0.0583 0.152 -vn 1 0 -0.00923 +vn 1 0 -0.00924 v -0.141 -0.0583 0.152 -vn 1 0 -0.00923 +vn 1 0 -0.00924 v -0.141 -0.0529 0.155 -vn 1 0 -0.00923 +vn 1 0 -0.00924 v -0.141 -0.0583 0.155 -vn 1 0 -0.00923 +vn 1 0 -0.00924 v -0.141 -0.0529 0.155 vn 0.0106 0 1 v -0.144 -0.0529 0.155 @@ -27803,17 +27803,17 @@ vn 0 1 0 v -0.044 -0.0529 0.204 vn 0 1 0 v -0.0524 -0.0529 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0485 -0.0529 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0524 -0.0583 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0524 -0.0583 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0485 -0.0529 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0485 -0.0583 0.201 -vn 0.000966 0 -1 +vn 0.000964 0 -1 v -0.0485 -0.0529 0.201 vn 1 0 0.0011 v -0.0485 -0.0529 0.204 @@ -27851,17 +27851,17 @@ vn 1 0 0.00162 v -0.044 -0.0583 0.207 vn 1 0 0.00162 v -0.044 -0.0529 0.207 -vn -0.000634 0 1 +vn -0.000636 0 1 v -0.0524 -0.0529 0.207 -vn -0.000634 0 1 +vn -0.000636 0 1 v -0.044 -0.0583 0.207 -vn -0.000634 0 1 +vn -0.000636 0 1 v -0.044 -0.0583 0.207 -vn -0.000634 0 1 +vn -0.000636 0 1 v -0.0524 -0.0529 0.207 -vn -0.000634 0 1 +vn -0.000636 0 1 v -0.0524 -0.0583 0.207 -vn -0.000634 0 1 +vn -0.000636 0 1 v -0.0524 -0.0529 0.207 vn -1 0 -0.00134 v -0.0524 -0.0529 0.201 @@ -28061,17 +28061,17 @@ vn 0 1 0 v -0.0463 -0.0513 0.186 vn 0 1 0 v -0.0513 -0.0513 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0499 -0.0513 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0513 -0.0567 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0513 -0.0567 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0499 -0.0513 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0499 -0.0567 0.182 -vn -0.0153 0 -1 +vn -0.0152 0 -1 v -0.0499 -0.0513 0.182 vn -0.0182 0 -1 v -0.0464 -0.0513 0.182 @@ -29984,17 +29984,17 @@ vn 0 1 0 v -0.0224 -0.048 0.197 vn 0 1 0 v -0.0297 -0.048 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.026 -0.048 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.0297 -0.0534 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.0297 -0.0534 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.026 -0.048 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.026 -0.0534 0.193 -vn 0.000756 0 -1 +vn 0.000755 0 -1 v -0.026 -0.048 0.193 vn 1 0 0.00114 v -0.026 -0.048 0.197 @@ -30056,17 +30056,17 @@ vn -1 0 -0.000812 v -0.0285 -0.0534 0.196 vn -1 0 -0.000812 v -0.0285 -0.048 0.196 -vn -0.000612 0 1 +vn -0.000609 0 1 v -0.0297 -0.048 0.196 -vn -0.000612 0 1 +vn -0.000609 0 1 v -0.0285 -0.0534 0.196 -vn -0.000612 0 1 +vn -0.000609 0 1 v -0.0285 -0.0534 0.196 -vn -0.000612 0 1 +vn -0.000609 0 1 v -0.0297 -0.048 0.196 -vn -0.000612 0 1 +vn -0.000609 0 1 v -0.0297 -0.0534 0.196 -vn -0.000612 0 1 +vn -0.000609 0 1 v -0.0297 -0.048 0.196 vn -1 0 -0.00092 v -0.0297 -0.048 0.193 @@ -30164,29 +30164,29 @@ vn -0.00126 0 1 v -0.0374 -0.0551 0.201 vn -0.00126 0 1 v -0.0374 -0.0496 0.201 -vn -1 0 -0.000968 +vn -1 0 -0.000969 v -0.0374 -0.0496 0.197 -vn -1 0 -0.000968 +vn -1 0 -0.000969 v -0.0374 -0.0551 0.201 -vn -1 0 -0.000968 +vn -1 0 -0.000969 v -0.0374 -0.0551 0.201 -vn -1 0 -0.000968 +vn -1 0 -0.000969 v -0.0374 -0.0496 0.197 -vn -1 0 -0.000968 +vn -1 0 -0.000969 v -0.0374 -0.0551 0.197 -vn -1 0 -0.000968 +vn -1 0 -0.000969 v -0.0374 -0.0496 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0338 -0.0496 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0374 -0.0551 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0374 -0.0551 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0338 -0.0496 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0338 -0.0551 0.197 -vn -0.000102 0 -1 +vn -0.000105 0 -1 v -0.0338 -0.0496 0.197 vn -1 0 -0.00115 v -0.0338 -0.0496 0.193 @@ -30200,17 +30200,17 @@ vn -1 0 -0.00115 v -0.0338 -0.0551 0.193 vn -1 0 -0.00115 v -0.0338 -0.0496 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0297 -0.0496 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0338 -0.0551 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0338 -0.0551 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0297 -0.0496 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0297 -0.0551 0.193 -vn 0.0017 0 -1 +vn 0.00169 0 -1 v -0.0319 -0.048 0.184 vn 0 1 0 v -0.0331 -0.048 0.184 @@ -31082,17 +31082,17 @@ vn 0 1 0 v -0.0423 -0.048 0.17 vn 0 1 0 v -0.0453 -0.048 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0424 -0.048 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0453 -0.0534 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0453 -0.0534 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0424 -0.048 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0424 -0.0534 0.165 -vn 0.00275 0 -1 +vn 0.00274 0 -1 v -0.0424 -0.048 0.165 vn 1 0 -0.0167 v -0.0423 -0.048 0.17 @@ -31106,17 +31106,17 @@ vn 1 0 -0.0167 v -0.0423 -0.0534 0.17 vn 1 0 -0.0167 v -0.0423 -0.048 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0452 -0.048 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0423 -0.0534 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0423 -0.0534 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0452 -0.048 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0452 -0.0534 0.17 -vn -0.00275 0 1 +vn -0.00274 0 1 v -0.0452 -0.048 0.17 vn -1 0 0.0167 v -0.0453 -0.048 0.165 @@ -31868,53 +31868,53 @@ vn 0.00159 0 -1 v 0.00247 -0.0453 0.158 vn 0.00159 0 -1 v 0.00247 -0.0398 0.158 -vn -1 0 0.00135 +vn -1 0 0.00136 v 0.00247 -0.0398 0.157 -vn -1 0 0.00135 +vn -1 0 0.00136 v 0.00247 -0.0453 0.158 -vn -1 0 0.00135 +vn -1 0 0.00136 v 0.00247 -0.0453 0.158 -vn -1 0 0.00135 +vn -1 0 0.00136 v 0.00247 -0.0398 0.157 -vn -1 0 0.00135 +vn -1 0 0.00136 v 0.00247 -0.0453 0.157 -vn -1 0 0.00135 +vn -1 0 0.00136 v 0.00247 -0.0398 0.157 -vn 0.000759 0 -1 +vn 0.000758 0 -1 v 0.00626 -0.0398 0.157 -vn 0.000759 0 -1 +vn 0.000758 0 -1 v 0.00247 -0.0453 0.157 -vn 0.000759 0 -1 +vn 0.000758 0 -1 v 0.00247 -0.0453 0.157 -vn 0.000759 0 -1 +vn 0.000758 0 -1 v 0.00626 -0.0398 0.157 -vn 0.000759 0 -1 +vn 0.000758 0 -1 v 0.00626 -0.0453 0.157 -vn 0.000759 0 -1 +vn 0.000758 0 -1 v 0.00626 -0.0398 0.157 -vn 1 0 0.00134 +vn 1 0 0.00133 v 0.00626 -0.0398 0.158 -vn 1 0 0.00134 +vn 1 0 0.00133 v 0.00626 -0.0453 0.157 -vn 1 0 0.00134 +vn 1 0 0.00133 v 0.00626 -0.0453 0.157 -vn 1 0 0.00134 +vn 1 0 0.00133 v 0.00626 -0.0398 0.158 -vn 1 0 0.00134 +vn 1 0 0.00133 v 0.00626 -0.0453 0.158 -vn 1 0 0.00134 +vn 1 0 0.00133 v 0.00626 -0.0398 0.158 -vn -0.00709 0 1 +vn -0.0071 0 1 v 0.0055 -0.0398 0.158 -vn -0.00709 0 1 +vn -0.0071 0 1 v 0.00626 -0.0453 0.158 -vn -0.00709 0 1 +vn -0.0071 0 1 v 0.00626 -0.0453 0.158 -vn -0.00709 0 1 +vn -0.0071 0 1 v 0.0055 -0.0398 0.158 -vn -0.00709 0 1 +vn -0.0071 0 1 v 0.0055 -0.0453 0.158 -vn -0.00709 0 1 +vn -0.0071 0 1 v 0.0055 -0.0398 0.158 vn 1 0 0.000833 v 0.0055 -0.0398 0.16 @@ -32018,17 +32018,17 @@ vn -1 0 -0.00363 v -0.000303 -0.0469 0.164 vn -1 0 -0.00363 v -0.000303 -0.0414 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v 0.000675 -0.0414 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v -0.000303 -0.0469 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v -0.000303 -0.0469 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v 0.000675 -0.0414 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v 0.000675 -0.0469 0.164 -vn 0.00277 0 -1 +vn 0.00276 0 -1 v 0.000675 -0.0414 0.164 vn 0.00276 0 -1 v 0.0041 -0.0414 0.164 @@ -35910,17 +35910,17 @@ vn -1 0 -0.00929 v 0.0624 -0.0583 0.154 vn -1 0 -0.00929 v 0.0624 -0.0529 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0615 -0.0529 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0624 -0.0583 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0624 -0.0583 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0615 -0.0529 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0615 -0.0583 0.154 -vn -0.0088 0 1 +vn -0.00879 0 1 v 0.0615 -0.0529 0.154 vn -1 0 -0.00721 v 0.0615 -0.0529 0.153 @@ -36696,17 +36696,17 @@ vn 1 0 -0.0108 v 0.0707 -0.0583 0.152 vn 1 0 -0.0108 v 0.0707 -0.0529 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0673 -0.0529 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0707 -0.0583 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0707 -0.0583 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0673 -0.0529 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0673 -0.0583 0.152 -vn 0.00968 0 1 +vn 0.00969 0 1 v 0.0673 -0.0529 0.152 vn -1 0 -0.0151 v 0.0673 -0.0529 0.151 @@ -37728,17 +37728,17 @@ vn 1 0 0.00875 v 0.0708 -0.0583 0.16 vn 1 0 0.00875 v 0.0708 -0.0529 0.16 -vn -0.0098 0 1 +vn -0.00981 0 1 v 0.0685 -0.0529 0.16 -vn -0.0098 0 1 +vn -0.00981 0 1 v 0.0708 -0.0583 0.16 -vn -0.0098 0 1 +vn -0.00981 0 1 v 0.0708 -0.0583 0.16 -vn -0.0098 0 1 +vn -0.00981 0 1 v 0.0685 -0.0529 0.16 -vn -0.0098 0 1 +vn -0.00981 0 1 v 0.0685 -0.0583 0.16 -vn -0.0098 0 1 +vn -0.00981 0 1 v 0.0685 -0.0529 0.16 vn -1 0 -0.00885 v 0.0685 -0.0529 0.158 @@ -43613,17 +43613,17 @@ vn 0.999 0 0.0411 v 0.0996 -0.0551 0.144 vn 0.999 0 0.0411 v 0.0996 -0.0496 0.144 -vn -0.0391 0 0.999 +vn -0.0392 0 0.999 v 0.0976 -0.0496 0.144 -vn -0.0391 0 0.999 +vn -0.0392 0 0.999 v 0.0996 -0.0551 0.144 -vn -0.0391 0 0.999 +vn -0.0392 0 0.999 v 0.0996 -0.0551 0.144 -vn -0.0391 0 0.999 +vn -0.0392 0 0.999 v 0.0976 -0.0496 0.144 -vn -0.0391 0 0.999 +vn -0.0392 0 0.999 v 0.0976 -0.0551 0.144 -vn -0.0391 0 0.999 +vn -0.0392 0 0.999 v 0.0976 -0.0496 0.144 vn -0.999 0 -0.0426 v 0.0977 -0.0496 0.142 @@ -44551,17 +44551,17 @@ vn -0.951 0 0.31 v 0.107 -0.0518 0.0743 vn -0.951 0 0.31 v 0.107 -0.0463 0.0743 -vn -0.0937 0 -0.996 +vn -0.0938 0 -0.996 v 0.108 -0.0463 0.0742 -vn -0.0937 0 -0.996 +vn -0.0938 0 -0.996 v 0.107 -0.0518 0.0743 -vn -0.0937 0 -0.996 +vn -0.0938 0 -0.996 v 0.107 -0.0518 0.0743 -vn -0.0937 0 -0.996 +vn -0.0938 0 -0.996 v 0.108 -0.0463 0.0742 -vn -0.0937 0 -0.996 +vn -0.0938 0 -0.996 v 0.108 -0.0518 0.0742 -vn -0.0937 0 -0.996 +vn -0.0938 0 -0.996 v 0.108 -0.0463 0.0742 vn -0.985 0 0.175 v 0.108 -0.0463 0.0724 diff --git a/tests/testdata/control_images/3d/expected_polygon3d_extrusion_textured_phong/default/expected_polygon3d_extrusion_textured_phong.png b/tests/testdata/control_images/3d/expected_polygon3d_extrusion_textured_phong/default/expected_polygon3d_extrusion_textured_phong.png index 8fe83dc9a89f..4bad175eb7dc 100644 Binary files a/tests/testdata/control_images/3d/expected_polygon3d_extrusion_textured_phong/default/expected_polygon3d_extrusion_textured_phong.png and b/tests/testdata/control_images/3d/expected_polygon3d_extrusion_textured_phong/default/expected_polygon3d_extrusion_textured_phong.png differ diff --git a/tests/testdata/control_images/3d/expected_polygon3d_extrusion_textured_phong/qt6/expected_polygon3d_extrusion_textured_phong.png b/tests/testdata/control_images/3d/expected_polygon3d_extrusion_textured_phong/qt6/expected_polygon3d_extrusion_textured_phong.png old mode 100644 new mode 100755 index a13ddfc72a1f..26db02e4a5d1 Binary files a/tests/testdata/control_images/3d/expected_polygon3d_extrusion_textured_phong/qt6/expected_polygon3d_extrusion_textured_phong.png and b/tests/testdata/control_images/3d/expected_polygon3d_extrusion_textured_phong/qt6/expected_polygon3d_extrusion_textured_phong.png differ