From 9954a488f2eda908a776ee8d02c1eb707c2efc60 Mon Sep 17 00:00:00 2001 From: David Lanier <122012029+lanierd-adsk@users.noreply.github.com> Date: Fri, 19 Apr 2024 17:02:44 +0200 Subject: [PATCH] HYDRA-955 : Pass normals and tangents to Hydra from render item and mesh adapters (#116) * HYDRA-955 : Pass normals and tangents to Hydra from render item and mesh adapters. * HYDRA-955 : Standardize the methods GetPoints, GetNormals, getUVs, GetTangents * Various cleanup. * Add a unit test to check that passing normals works fine * Update MaterialX test result with normals. * Fix Linux compile error. * fix the normal update issue --------- Co-authored-by: Keli Li --- .../hydraExtensions/adapters/adapter.h | 9 +- .../hydraExtensions/adapters/meshAdapter.cpp | 155 +- .../adapters/renderItemAdapter.cpp | 220 ++- .../adapters/renderItemAdapter.h | 4 +- .../hydraExtensions/adapters/tokens.h | 3 +- .../sceneIndex/mayaHydraSceneIndex.cpp | 11 +- .../sceneIndex/mayaHydraSceneIndex.h | 3 + .../mayaUsd/render/mayaToHydra/CMakeLists.txt | 1 + .../MaterialXOnNativeTest/RedMtlxSphere.png | Bin 17007 -> 16803 bytes .../importedAssetsNormals.png | Bin 0 -> 12567 bytes .../testPassingNormalsOnMayaNative.py | 39 + .../test_ImportedAssetsNormals.ma | 1736 +++++++++++++++++ 12 files changed, 2067 insertions(+), 114 deletions(-) create mode 100644 test/lib/mayaUsd/render/mayaToHydra/PassingNormalsOnMayaNativeTest/importedAssetsNormals.png create mode 100644 test/lib/mayaUsd/render/mayaToHydra/testPassingNormalsOnMayaNative.py create mode 100644 test/testSamples/testPassingNormals/test_ImportedAssetsNormals.ma diff --git a/lib/mayaHydra/hydraExtensions/adapters/adapter.h b/lib/mayaHydra/hydraExtensions/adapters/adapter.h index c5dbf2e1cc..d15c4efc5d 100644 --- a/lib/mayaHydra/hydraExtensions/adapters/adapter.h +++ b/lib/mayaHydra/hydraExtensions/adapters/adapter.h @@ -104,7 +104,14 @@ class MayaHydraAdapter MAYAHYDRALIB_API virtual HdCullStyle GetCullStyle() const { return HdCullStyleNothing; } MAYAHYDRALIB_API - virtual HdDisplayStyle GetDisplayStyle() { return { 0, false, false }; } + virtual HdDisplayStyle GetDisplayStyle() { + constexpr int refineLevel = 0; + constexpr bool flatShading = false; + constexpr bool displacement = false; + constexpr bool occludedSelectionShowsThrough = false; + constexpr bool pointsShadingEnabled = false; + constexpr bool materialIsFinal = false; + return HdDisplayStyle(refineLevel, flatShading, displacement, occludedSelectionShowsThrough, pointsShadingEnabled, materialIsFinal); } MAYAHYDRALIB_API virtual GfBBox3d GetBoundingBox() const { return GfBBox3d(); } MAYAHYDRALIB_API diff --git a/lib/mayaHydra/hydraExtensions/adapters/meshAdapter.cpp b/lib/mayaHydra/hydraExtensions/adapters/meshAdapter.cpp index f378533db1..bd2cca0f8b 100644 --- a/lib/mayaHydra/hydraExtensions/adapters/meshAdapter.cpp +++ b/lib/mayaHydra/hydraExtensions/adapters/meshAdapter.cpp @@ -53,11 +53,11 @@ namespace { const std::pair _dirtyBits[] { { MayaAttrs::mesh::pnts, // This is useful when the user edits the mesh. - HdChangeTracker::DirtyPoints | HdChangeTracker::DirtyExtent + HdChangeTracker::DirtyPoints | HdChangeTracker::DirtyExtent | HdChangeTracker::DirtyNormals | HdChangeTracker::DirtySubdivTags }, { MayaAttrs::mesh::inMesh, // We are tracking topology changes and uv changes separately - HdChangeTracker::DirtyPoints | HdChangeTracker::DirtyExtent + HdChangeTracker::DirtyPoints | HdChangeTracker::DirtyExtent | HdChangeTracker::DirtyNormals | HdChangeTracker::DirtySubdivTags }, { MayaAttrs::mesh::worldMatrix, HdChangeTracker::DirtyTransform }, { MayaAttrs::mesh::doubleSided, HdChangeTracker::DirtyDoubleSided }, @@ -160,23 +160,64 @@ class MayaHydraMeshAdapter : public MayaHydraShapeAdapter if (ARCH_UNLIKELY(!status)) { return {}; } + + //Uvs are face varying VtArray uvs; - uvs.reserve(static_cast(mesh.numFaceVertices())); + const size_t numFacesVertices = mesh.numFaceVertices(); + uvs.resize(numFacesVertices); + float2* uvsPointer = (float2*)uvs.cdata(); + size_t numUVsFloat2 = 0; for (MItMeshPolygon pit(GetDagPath()); !pit.isDone(); pit.next()) { const auto vertexCount = pit.polygonVertexCount(); for (auto i = decltype(vertexCount) { 0 }; i < vertexCount; ++i) { - float2 uv = { 0.0f, 0.0f }; - pit.getUV(i, uv); - uvs.push_back(GfVec2f(uv[0], uv[1])); + pit.getUV(i, *uvsPointer); + ++uvsPointer; + ++numUVsFloat2; } } + if (numUVsFloat2 != numFacesVertices){ + TF_CODING_ERROR("Number of UVs does not match number of face vertices" ); + } + return VtValue(uvs); } - VtValue GetPoints(const MFnMesh& mesh) + VtValue GetTangents() { - MStatus status; + MStatus status; + MFnMesh mesh(GetDagPath(), &status); + if (ARCH_UNLIKELY(!status)) { + return {}; + } + + //Tangents are face varying + const size_t numFacesVertices = mesh.numFaceVertices(); + MFloatVectorArray mayaTangents; + mesh.getTangents(mayaTangents); + const size_t tangentsCount = mayaTangents.length(); + if (0 == tangentsCount){ + return {}; + } + + if (tangentsCount != numFacesVertices){ + TF_CODING_ERROR("Number of tangents does not match number of face vertices" ); + } + + const auto* tangentsArray = reinterpret_cast(&mayaTangents[0]); + VtVec2fArray ret; + ret.assign(tangentsArray, tangentsArray + numFacesVertices); + return VtValue(ret); + } + + VtValue GetPoints() + { + MStatus status; + MFnMesh mesh(GetDagPath(), &status); + if (ARCH_UNLIKELY(!status)) { + return {}; + } + const auto* rawPoints = reinterpret_cast(mesh.getRawPoints(&status)); if (ARCH_UNLIKELY(!status)) { return {}; @@ -186,6 +227,24 @@ class MayaHydraMeshAdapter : public MayaHydraShapeAdapter return VtValue(ret); } + VtValue GetNormals() + { + MStatus status; + MFnMesh mesh(GetDagPath(), &status); + if (ARCH_UNLIKELY(!status)) { + return {}; + } + + //Normals are per vertex + MFloatVectorArray normals; + constexpr bool angleWeighted = false; + mesh.getVertexNormals(angleWeighted, normals); + const auto* rawNormals = reinterpret_cast(&normals[0]); + VtVec3fArray ret; + ret.assign(rawNormals, rawNormals + mesh.numVertices()); + return VtValue(ret); + } + VtValue Get(const TfToken& key) override { TF_DEBUG(MAYAHYDRALIB_ADAPTER_GET) @@ -195,15 +254,21 @@ class MayaHydraMeshAdapter : public MayaHydraShapeAdapter GetDagPath().partialPathName().asChar()); if (key == HdTokens->points) { - MStatus status; - MFnMesh mesh(GetDagPath(), &status); - if (ARCH_UNLIKELY(!status)) { - return {}; - } - return GetPoints(mesh); - } else if (key == MayaHydraAdapterTokens->st) { + return GetPoints(); + } + + if (key == HdTokens->normals) { + return GetNormals(); + } + + if (key == MayaHydraAdapterTokens->tangents) { + return GetTangents(); + } + + if (key == MayaHydraAdapterTokens->st) { return GetUVs(); } + return {}; } @@ -215,18 +280,27 @@ class MayaHydraMeshAdapter : public MayaHydraShapeAdapter } if (key == HdTokens->points) { - MStatus status; - MFnMesh mesh(GetDagPath(), &status); - if (ARCH_UNLIKELY(!status)) { - return 0; - } return GetMayaHydraSceneIndex()->SampleValues( - maxSampleCount, times, samples, [&]() -> VtValue { return GetPoints(mesh); }); - } else if (key == MayaHydraAdapterTokens->st) { + maxSampleCount, times, samples, [&]() -> VtValue { return GetPoints(); }); + } + + if (key == HdTokens->normals) { + return GetMayaHydraSceneIndex()->SampleValues( + maxSampleCount, times, samples, [&]() -> VtValue { return GetNormals(); }); + } + + if (key == MayaHydraAdapterTokens->tangents) { + times[0] = 0.0f; + samples[0] = GetTangents(); + return 1; + } + + if (key == MayaHydraAdapterTokens->st) { times[0] = 0.0f; samples[0] = GetUVs(); return 1; } + return 0; } @@ -246,11 +320,17 @@ class MayaHydraMeshAdapter : public MayaHydraShapeAdapter } } - return HdMeshTopology( + static const bool passNormalsToHydra = MayaHydraSceneIndex::passNormalsToHydra(); + return (passNormalsToHydra) ? + HdMeshTopology( + PxOsdOpenSubdivTokens->none,//For the OGS normals vertex buffer to be used, we need to use PxOsdOpenSubdivTokens->none + UsdGeomTokens->rightHanded, + faceVertexCounts, + faceVertexIndices) : + HdMeshTopology( (GetMayaHydraSceneIndex()->GetParams().displaySmoothMeshes || GetDisplayStyle().refineLevel > 0) ? PxOsdOpenSubdivTokens->catmullClark : PxOsdOpenSubdivTokens->none, - UsdGeomTokens->rightHanded, faceVertexCounts, faceVertexIndices); @@ -339,20 +419,23 @@ class MayaHydraMeshAdapter : public MayaHydraShapeAdapter HdPrimvarDescriptorVector GetPrimvarDescriptors(HdInterpolation interpolation) override { if (interpolation == HdInterpolationVertex) { - HdPrimvarDescriptor desc; - desc.name = UsdGeomTokens->points; - desc.interpolation = interpolation; - desc.role = HdPrimvarRoleTokens->point; - return { desc }; + static const bool passNormalsToHydra = MayaHydraSceneIndex::passNormalsToHydra(); + return passNormalsToHydra ? + HdPrimvarDescriptorVector{ + {UsdGeomTokens->points, interpolation, HdPrimvarRoleTokens->point},//Vertices + {UsdGeomTokens->normals, interpolation, HdPrimvarRoleTokens->normal}//Normals + } : + HdPrimvarDescriptorVector{ + {UsdGeomTokens->points, interpolation, HdPrimvarRoleTokens->point}//Vertices only + }; } else if (interpolation == HdInterpolationFaceVarying) { - // UVs are face varying in maya. + // UVs and tangents are face varying in maya. MFnMesh mesh(GetDagPath()); if (mesh.numUVs() > 0) { - HdPrimvarDescriptor desc; - desc.name = MayaHydraAdapterTokens->st; - desc.interpolation = interpolation; - desc.role = HdPrimvarRoleTokens->textureCoordinate; - return { desc }; + return HdPrimvarDescriptorVector{ + {MayaHydraAdapterTokens->st, interpolation, HdPrimvarRoleTokens->textureCoordinate},//uvs + {MayaHydraAdapterTokens->tangents, interpolation, HdPrimvarRoleTokens->textureCoordinate},//tangents + }; } } return {}; @@ -422,7 +505,7 @@ class MayaHydraMeshAdapter : public MayaHydraShapeAdapter auto* adapter = reinterpret_cast(clientData); adapter->MarkDirty( HdChangeTracker::DirtyTopology | HdChangeTracker::DirtyPrimvar - | HdChangeTracker::DirtyPoints); + | HdChangeTracker::DirtyPoints | HdChangeTracker::DirtyNormals); } static void ComponentIdChanged(MUintArray componentIds[], unsigned int count, void* clientData) diff --git a/lib/mayaHydra/hydraExtensions/adapters/renderItemAdapter.cpp b/lib/mayaHydra/hydraExtensions/adapters/renderItemAdapter.cpp index a34097bb1e..941fa0d6ef 100644 --- a/lib/mayaHydra/hydraExtensions/adapters/renderItemAdapter.cpp +++ b/lib/mayaHydra/hydraExtensions/adapters/renderItemAdapter.cpp @@ -179,7 +179,7 @@ void MayaHydraRenderItemAdapter::UpdateFromDelta(const UpdateFromDeltaData& data dirtyBits |= HdChangeTracker::DirtyTransform; } if (geomChanged) { - dirtyBits |= (HdChangeTracker::DirtyPoints | HdChangeTracker::DirtyExtent); + dirtyBits |= (HdChangeTracker::DirtyPoints | HdChangeTracker::DirtyExtent | HdChangeTracker::DirtyNormals); } if (topoChanged) { dirtyBits |= (HdChangeTracker::DirtyTopology | HdChangeTracker::DirtyPrimvar | HdChangeTracker::DirtyExtent); @@ -196,52 +196,84 @@ void MayaHydraRenderItemAdapter::UpdateFromDelta(const UpdateFromDeltaData& data VtIntArray vertexIndices; VtIntArray vertexCounts; + static const bool passNormalsToHydra = MayaHydraSceneIndex::passNormalsToHydra(); + + const int vertexBuffercount = geom ? geom->vertexBufferCount() : 0; // Vertices - MVertexBuffer* verts = nullptr; - if (geomChanged && geom && geom->vertexBufferCount() > 0) { - // Assume first stream contains the positions. We do not handle multiple streams for now. - verts = geom->vertexBuffer(0); - if (verts) { - int vertCount = 0; - const unsigned int originalVertexCount = verts->vertexCount(); - if (topoChanged) { - vertCount = originalVertexCount; - } else { - // Keep the previously-determined vertex count in case it was truncated. - const size_t positionSize = _positions.size(); - if (positionSize > 0 && positionSize <= originalVertexCount) { - vertCount = positionSize; - } else { - vertCount = originalVertexCount; - } + if (geomChanged && vertexBuffercount) { + //vertexBuffercount > 0 means geom is non null + for (int vbIdx = 0; vbIdx < vertexBuffercount; vbIdx++) { + MVertexBuffer* mvb = geom->vertexBuffer(vbIdx); + if ( ! mvb) { + continue; } - _positions.clear(); - //_positions.resize(vertCount); - // map() is usually just reading from the software copy of the vp2 buffers. It was also - // showing up in vtune that it was sometimes mapping OpenGL buffers to read from, which - // is slow. Disabling processing of non-triangle render made that disappear. Maybe - // something like joint render items point to hardware only buffers? - const auto* vertexPositions = reinterpret_cast(verts->map()); - // NOTE: Looking at MayaHydraMeshAdapter::GetPoints notice assign(vertexPositions, - // vertexPositions + vertCount) Why are we not multiplying with sizeof(GfVec3f) to - // calculate the offset ? The following happens when I try to do it : Invalid Hydra prim - // - Vertex primvar points has 288 elements, while its topology references only upto - // element index 24. - if (TF_VERIFY(vertexPositions)) { - _positions.assign(vertexPositions, vertexPositions + vertCount); + const MVertexBufferDescriptor& desc = mvb->descriptor(); + const auto semantic = desc.semantic(); + switch(semantic){ + + case MGeometry::Semantic::kPosition: { + //Vertices + MVertexBuffer*verts = mvb; + int vertCount = 0; + const unsigned int originalVertexCount = verts->vertexCount(); + if (topoChanged) { + vertCount = originalVertexCount; + } else { + // Keep the previously-determined vertex count in case it was truncated. + const size_t positionSize = _positions.size(); + if (positionSize > 0 && positionSize <= originalVertexCount) { + vertCount = positionSize; + } else { + vertCount = originalVertexCount; + } + } + + _positions.clear(); + const auto* vertexPositions = reinterpret_cast(verts->map()); + if (TF_VERIFY(vertexPositions)) { + _positions.assign(vertexPositions, vertexPositions + vertCount); + } + verts->unmap(); + } + break; + case MGeometry::Semantic::kNormal: { + //Normals + if (passNormalsToHydra){ + MVertexBuffer* normals = mvb; + int normalsCount = 0; + const unsigned int originalNormalsCount = normals->vertexCount(); + if (topoChanged) { + normalsCount = originalNormalsCount; + } else { + // Keep the previously-determined normals count in case it was truncated. + const size_t normalSize = _normals.size(); + if (normalSize > 0 && normalSize <= originalNormalsCount) { + normalsCount = normalSize; + } else { + normalsCount = originalNormalsCount; + } + } + + _normals.clear(); + const auto* vertexNormals = reinterpret_cast(normals->map()); + if (TF_VERIFY(vertexNormals)) { + _normals.assign(vertexNormals, vertexNormals + normalsCount); + } + normals->unmap(); + } + } + break; + default: + break; } - verts->unmap(); } } // Indices - // Note that a Primitive::kLineStrip index buffer is unavailable. The following section is - // skipped. In such case, indices are implicitly defined below. - MIndexBuffer* indices = nullptr; - if (topoChanged && geom && geom->indexBufferCount() > 0) { + if (topoChanged && vertexBuffercount) { // Assume first stream contains the positions. - indices = geom->indexBuffer(0); + MIndexBuffer* indices = geom->indexBuffer(0); if (indices) { int indexCount = indices->size(); vertexIndices.resize(indexCount); @@ -258,42 +290,59 @@ void MayaHydraRenderItemAdapter::UpdateFromDelta(const UpdateFromDeltaData& data } } - // VtArray operator[] is oddly expensive, ~10ms per frame here. Replace with assign(). - // for (int i = 0; i < indexCount; i++) vertexIndices[i] = indicesData[i]; vertexIndices.assign(indicesData, indicesData + indexCount); if (maxIndex < (int64_t)_positions.size() - 1) { _positions.resize(maxIndex + 1); } + const size_t numNormals = _normals.size(); + if (numNormals > 0 && (maxIndex < (int64_t)numNormals - 1)) { + _normals.resize(maxIndex + 1); + } switch (GetPrimitive()) { case MHWRender::MGeometry::Primitive::kTriangles: vertexCounts.resize(indexCount / 3); vertexCounts.assign(indexCount / 3, 3); - // UVs + // Get face varying data from Maya like uvs if (indexCount > 0) { + MVertexBuffer* mvb = nullptr; - for (int vbIdx = 0; vbIdx < geom->vertexBufferCount(); vbIdx++) { + + for (int vbIdx = 0; vbIdx < vertexBuffercount; vbIdx++) { mvb = geom->vertexBuffer(vbIdx); if (!mvb) continue; const MVertexBufferDescriptor& desc = mvb->descriptor(); - - if (desc.semantic() != MGeometry::Semantic::kTexture) - continue; - - // Hydra expects a uv coordinate for each face-index, not 1 per vertex. - // e.g. a cube expects 36 uvs not 24. - _uvs.clear(); - _uvs.resize(indices->size()); - float* uvs = (float*)mvb->map(); - for (int i = 0; i < indexCount; ++i) { - _uvs[i].Set(&uvs[indicesData[i] * 2]); + const auto semantic = desc.semantic(); + switch(semantic){ + case MGeometry::Semantic::kTexture: { + // Hydra supports a uv coordinate for each face-index (face varying), though we could use its own set of indices which should be smaller. + _uvs.clear(); + _uvs.resize(indices->size()); + float* uvs = (float*)mvb->map(); + for (int i = 0; i < indexCount; ++i){ + _uvs[i].Set(&uvs[indicesData[i] * 2]); + } + mvb->unmap(); + } + break; + case MHWRender::MGeometry::kTangent:{ + // Hydra supports a tangent for each face-index (face varying), though we could use its own set of indices which should be smaller. + _tangents.clear(); + _tangents.resize(indices->size()); + float* tangents = (float*)mvb->map(); + for (int i = 0; i < indexCount; ++i){ + _tangents[i].Set(&tangents[indicesData[i] * 2]); + } + mvb->unmap(); + } + break; + default: + break; } - mvb->unmap(); - break; } } break; @@ -312,15 +361,25 @@ void MayaHydraRenderItemAdapter::UpdateFromDelta(const UpdateFromDeltaData& data if (topoChanged) { switch (GetPrimitive()) { - case MGeometry::Primitive::kTriangles: - _topology.reset(new HdMeshTopology( - (GetMayaHydraSceneIndex()->GetParams().displaySmoothMeshes - || GetDisplayStyle().refineLevel > 0) - ? PxOsdOpenSubdivTokens->catmullClark - : PxOsdOpenSubdivTokens->none, - UsdGeomTokens->rightHanded, - vertexCounts, - vertexIndices)); + case MGeometry::Primitive::kTriangles:{ + static const bool passNormalsToHydra = MayaHydraSceneIndex::passNormalsToHydra(); + if (passNormalsToHydra){ + _topology.reset(new HdMeshTopology( + PxOsdOpenSubdivTokens->none,//For the OGS normals vertex buffer to be used, we need to use PxOsdOpenSubdivTokens->none + UsdGeomTokens->rightHanded, + vertexCounts, + vertexIndices)); + } else{ + _topology.reset(new HdMeshTopology( + (GetMayaHydraSceneIndex()->GetParams().displaySmoothMeshes + || GetDisplayStyle().refineLevel > 0) + ? PxOsdOpenSubdivTokens->catmullClark + : PxOsdOpenSubdivTokens->none, + UsdGeomTokens->rightHanded, + vertexCounts, + vertexIndices)); + } + } break; case MGeometry::Primitive::kLines: case MGeometry::Primitive::kLineStrip: { @@ -367,6 +426,12 @@ VtValue MayaHydraRenderItemAdapter::Get(const TfToken& key) if (key == HdTokens->points) { return VtValue(_positions); } + if (key == HdTokens->normals) { + return VtValue(_normals); + } + if (key == MayaHydraAdapterTokens->tangents){ + return VtValue(_tangents); + } if (key == MayaHydraAdapterTokens->st) { return VtValue(_uvs); } @@ -392,17 +457,24 @@ MayaHydraRenderItemAdapter::GetPrimvarDescriptors(HdInterpolation interpolation) // Vertices if (interpolation == HdInterpolationVertex) { - desc.name = UsdGeomTokens->points; - desc.interpolation = interpolation; - desc.role = HdPrimvarRoleTokens->point; - return { desc }; - } else if (interpolation == HdInterpolationFaceVarying) { - // UVs are face varying in maya. + static const bool passNormalsToHydra = MayaHydraSceneIndex::passNormalsToHydra(); + return passNormalsToHydra ? + HdPrimvarDescriptorVector{ + {UsdGeomTokens->points, interpolation, HdPrimvarRoleTokens->point},//Vertices + {UsdGeomTokens->normals, interpolation, HdPrimvarRoleTokens->normal}//Normals + } : + HdPrimvarDescriptorVector{ + {UsdGeomTokens->points, interpolation, HdPrimvarRoleTokens->point}//Vertices only + }; + } + else if (interpolation == HdInterpolationFaceVarying) { + // UVs and tangents are face varying in maya. if (_primitive == MGeometry::Primitive::kTriangles) { - desc.name = MayaHydraAdapterTokens->st; - desc.interpolation = interpolation; - desc.role = HdPrimvarRoleTokens->textureCoordinate; - return { desc }; + return + HdPrimvarDescriptorVector{ + {MayaHydraAdapterTokens->st, interpolation, HdPrimvarRoleTokens->textureCoordinate},//uvs + {MayaHydraAdapterTokens->tangents, interpolation, HdPrimvarRoleTokens->textureCoordinate},//tangents + }; } } else if (interpolation == HdInterpolationConstant) { switch(_primitive){ diff --git a/lib/mayaHydra/hydraExtensions/adapters/renderItemAdapter.h b/lib/mayaHydra/hydraExtensions/adapters/renderItemAdapter.h index 2b535c1444..636802d95b 100644 --- a/lib/mayaHydra/hydraExtensions/adapters/renderItemAdapter.h +++ b/lib/mayaHydra/hydraExtensions/adapters/renderItemAdapter.h @@ -206,7 +206,9 @@ class MayaHydraRenderItemAdapter : public MayaHydraAdapter MDagPath _dagPath; std::unique_ptr _topology = nullptr; VtVec3fArray _positions = {}; - VtVec2fArray _uvs = {}; + VtVec3fArray _normals = {};//Are per vertex + VtVec3fArray _tangents = {}; //Are face varying + VtVec2fArray _uvs = {}; //Are face varying MGeometry::Primitive _primitive; MString _name; GfMatrix4d _transform[2]; diff --git a/lib/mayaHydra/hydraExtensions/adapters/tokens.h b/lib/mayaHydra/hydraExtensions/adapters/tokens.h index 5d4b8457f5..d988249500 100644 --- a/lib/mayaHydra/hydraExtensions/adapters/tokens.h +++ b/lib/mayaHydra/hydraExtensions/adapters/tokens.h @@ -81,7 +81,8 @@ PXR_NAMESPACE_OPEN_SCOPE (MayaHydraPhongShader) \ (MayaHydraBlinnShader) \ (MayaHydraStippleShader) \ - (MayaHydraSolidColorShader) + (MayaHydraSolidColorShader) \ + (tangents) // clang-format on diff --git a/lib/mayaHydra/hydraExtensions/sceneIndex/mayaHydraSceneIndex.cpp b/lib/mayaHydra/hydraExtensions/sceneIndex/mayaHydraSceneIndex.cpp index 39153d7bda..8e7d7e88db 100644 --- a/lib/mayaHydra/hydraExtensions/sceneIndex/mayaHydraSceneIndex.cpp +++ b/lib/mayaHydra/hydraExtensions/sceneIndex/mayaHydraSceneIndex.cpp @@ -71,10 +71,13 @@ TF_DEFINE_ENV_SETTING(MAYA_HYDRA_USE_MESH_ADAPTER, false, "Use mesh adapter instead of MRenderItem for Maya meshes."); bool useMeshAdapter() { - static bool uma = TfGetEnvSetting(MAYA_HYDRA_USE_MESH_ADAPTER); + static const bool uma = TfGetEnvSetting(MAYA_HYDRA_USE_MESH_ADAPTER); return uma; } +TF_DEFINE_ENV_SETTING(MAYA_HYDRA_PASS_NORMALS_TO_HYDRA, true, + "Pass the normals to Hydra (works for both render item and mesh adapters)."); + namespace { bool filterMesh(const MRenderItem& ri) { return useMeshAdapter() ? @@ -1550,4 +1553,10 @@ VtValue MayaHydraSceneIndex::GetShadingStyle(SdfPath const& id) return VtValue(); } +bool MayaHydraSceneIndex::passNormalsToHydra() +{ + static const bool val = TfGetEnvSetting(MAYA_HYDRA_PASS_NORMALS_TO_HYDRA); + return val; +} + PXR_NAMESPACE_CLOSE_SCOPE diff --git a/lib/mayaHydra/hydraExtensions/sceneIndex/mayaHydraSceneIndex.h b/lib/mayaHydra/hydraExtensions/sceneIndex/mayaHydraSceneIndex.h index 01fa78acc3..c0af98cfee 100644 --- a/lib/mayaHydra/hydraExtensions/sceneIndex/mayaHydraSceneIndex.h +++ b/lib/mayaHydra/hydraExtensions/sceneIndex/mayaHydraSceneIndex.h @@ -246,6 +246,9 @@ class MAYAHYDRALIB_API MayaHydraSceneIndex : public HdRetainedSceneIndex, public return nSamples; } + /// Is using an environment variable to tell if we should pass normals to Hydra when using the render item and mesh adapters + static bool passNormalsToHydra(); + private: MayaHydraSceneIndex( MayaHydraInitData& initData, diff --git a/test/lib/mayaUsd/render/mayaToHydra/CMakeLists.txt b/test/lib/mayaUsd/render/mayaToHydra/CMakeLists.txt index 44a72f2c4f..e74ceb5362 100644 --- a/test/lib/mayaUsd/render/mayaToHydra/CMakeLists.txt +++ b/test/lib/mayaUsd/render/mayaToHydra/CMakeLists.txt @@ -34,6 +34,7 @@ set(INTERACTIVE_TEST_SCRIPT_FILES testFootPrintNode.py testBackgroundColor.py testGrid.py + testPassingNormalsOnMayaNative.py cpp/testColorPreferences.py cpp/testCppFramework.py cpp/testMayaSceneFlattening.py diff --git a/test/lib/mayaUsd/render/mayaToHydra/MaterialXOnNativeTest/RedMtlxSphere.png b/test/lib/mayaUsd/render/mayaToHydra/MaterialXOnNativeTest/RedMtlxSphere.png index bf5b1539ec3a1760f7d71cfd651ce93739f6b1d3..37d65dfdf951d4dafeb7359c97f8f4bd9d774a54 100644 GIT binary patch literal 16803 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 Kbt<$R-u{2o94|5e literal 17007 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 W=aCiW|NT1=6b5=Gx>Z1@*Z&J#b-CC8 diff --git a/test/lib/mayaUsd/render/mayaToHydra/PassingNormalsOnMayaNativeTest/importedAssetsNormals.png b/test/lib/mayaUsd/render/mayaToHydra/PassingNormalsOnMayaNativeTest/importedAssetsNormals.png new file mode 100644 index 0000000000000000000000000000000000000000..676621cb74df3247e19be9dd82db8d2c403e5db9 GIT binary patch literal 12567 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 literal 0 HcmV?d00001 diff --git a/test/lib/mayaUsd/render/mayaToHydra/testPassingNormalsOnMayaNative.py b/test/lib/mayaUsd/render/mayaToHydra/testPassingNormalsOnMayaNative.py new file mode 100644 index 0000000000..72849f879d --- /dev/null +++ b/test/lib/mayaUsd/render/mayaToHydra/testPassingNormalsOnMayaNative.py @@ -0,0 +1,39 @@ +# +# Copyright 2023 Autodesk, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +from math import* +import maya.cmds as cmds +import fixturesUtils +import mtohUtils +import mayaUtils + +class TestPassingNormalsOnMayaNative(mtohUtils.MayaHydraBaseTestCase): #Subclassing mtohUtils.MayaHydraBaseTestCase to be able to call self.assertSnapshotClose + # MayaHydraBaseTestCase.setUpClass requirement. + _file = __file__ + + IMAGE_DIFF_FAIL_THRESHOLD = 0.01 + IMAGE_DIFF_FAIL_PERCENT = 0.1 + + #Test loading a scene + def test_Load(self): + testFile = mayaUtils.openTestScene( + "testPassingNormals", + "test_ImportedAssetsNormals.ma") + cmds.refresh() + self.assertSnapshotClose("importedAssetsNormals.png", self.IMAGE_DIFF_FAIL_THRESHOLD, self.IMAGE_DIFF_FAIL_PERCENT) + +if __name__ == '__main__': + fixturesUtils.runTests(globals()) diff --git a/test/testSamples/testPassingNormals/test_ImportedAssetsNormals.ma b/test/testSamples/testPassingNormals/test_ImportedAssetsNormals.ma new file mode 100644 index 0000000000..6754c64cd1 --- /dev/null +++ b/test/testSamples/testPassingNormals/test_ImportedAssetsNormals.ma @@ -0,0 +1,1736 @@ +//Maya ASCII 2026ff01 scene +//Name: test_ImportedAssetsNormals.ma +//Last modified: Wed, Apr 10, 2024 10:06:11 AM +//Codeset: 1252 +requires maya "2026ff01"; +requires "stereoCamera" "10.0"; +requires -nodeType "aiOptions" -nodeType "aiAOVDriver" -nodeType "aiAOVFilter" "mtoa" "5.4.0"; +requires -nodeType "mayaUsdLayerManager" -dataType "pxrUsdStageData" "mayaUsdPlugin" "0.28.0"; +requires "stereoCamera" "10.0"; +currentUnit -l centimeter -a degree -t film; +fileInfo "application" "maya"; +fileInfo "product" "Maya 2025"; +fileInfo "version" "Preview Release 153"; +fileInfo "cutIdentifier" "202402011613-000000"; +fileInfo "osv" "Windows 10 Enterprise v2009 (Build: 19045)"; +fileInfo "UUID" "E798CD8D-4AF3-AB82-1643-95A534C8D94C"; +createNode transform -s -n "persp"; + rename -uid "D0A955A7-4C18-8354-C6D2-578DE2588E55"; + setAttr ".v" no; + setAttr ".t" -type "double3" 4.6289385352445933 1.9015937115818371 -1.1367923294006177 ; + setAttr ".r" -type "double3" -24.338352729598085 90.200000000001751 -4.5799987413074647e-13 ; +createNode camera -s -n "perspShape" -p "persp"; + rename -uid "B2025A8E-4E80-15B1-C43F-7B8BED75FB90"; + setAttr -k off ".v" no; + setAttr ".fl" 34.999999999999993; + setAttr ".coi" 5.062305626844295; + setAttr ".imn" -type "string" "persp"; + setAttr ".den" -type "string" "persp_depth"; + setAttr ".man" -type "string" "persp_mask"; + setAttr ".tp" -type "double3" 6.83377895382975e-07 0.1349999364782376 2.050133686148925e-07 ; + setAttr ".hc" -type "string" "viewSet -p %camera"; +createNode transform -s -n "top"; + rename -uid "002D0ADA-4471-E596-5995-9AA809D10E53"; + setAttr ".v" no; + setAttr ".t" -type "double3" 0 1000.1 0 ; + setAttr ".r" -type "double3" -90 0 0 ; +createNode camera -s -n "topShape" -p "top"; + rename -uid "E9E64D9A-488B-25D1-3250-FC9893B0B4FF"; + setAttr -k off ".v" no; + setAttr ".rnd" no; + setAttr ".coi" 1000.1; + setAttr ".ow" 30; + setAttr ".imn" -type "string" "top"; + setAttr ".den" -type "string" "top_depth"; + setAttr ".man" -type "string" "top_mask"; + setAttr ".hc" -type "string" "viewSet -t %camera"; + setAttr ".o" yes; + setAttr ".ai_translator" -type "string" "orthographic"; +createNode transform -s -n "front"; + rename -uid "4E99FEB8-47CC-3A0C-BAAB-E7B5AAE5E347"; + setAttr ".v" no; + setAttr ".t" -type "double3" 0 0 1000.1 ; +createNode camera -s -n "frontShape" -p "front"; + rename -uid "8706D3D7-455E-B6B8-CCA2-54B61FE2DE76"; + setAttr -k off ".v" no; + setAttr ".rnd" no; + setAttr ".coi" 1000.1; + setAttr ".ow" 30; + setAttr ".imn" -type "string" "front"; + setAttr ".den" -type "string" "front_depth"; + setAttr ".man" -type "string" "front_mask"; + setAttr ".hc" -type "string" "viewSet -f %camera"; + setAttr ".o" yes; + setAttr ".ai_translator" -type "string" "orthographic"; +createNode transform -s -n "side"; + rename -uid "B3321176-4474-7E4D-8FBE-6EA5DA74E26C"; + setAttr ".v" no; + setAttr ".t" -type "double3" 1000.1 0 0 ; + setAttr ".r" -type "double3" 0 90 0 ; +createNode camera -s -n "sideShape" -p "side"; + rename -uid "83CDCB3D-4D87-587A-2AE7-0EBFD425D4DE"; + setAttr -k off ".v" no; + setAttr ".rnd" no; + setAttr ".coi" 1000.1; + setAttr ".ow" 30; + setAttr ".imn" -type "string" "side"; + setAttr ".den" -type "string" "side_depth"; + setAttr ".man" -type "string" "side_mask"; + setAttr ".hc" -type "string" "viewSet -s %camera"; + setAttr ".o" yes; + setAttr ".ai_translator" -type "string" "orthographic"; +createNode transform -n "testGeo_normals:original"; + rename -uid "6FDE1BDE-42CD-FF5F-6964-D2869AFAE833"; + setAttr ".s" -type "double3" 0.57325892802804179 0.57325892802804179 0.57325892802804179 ; +createNode mesh -n "testGeo_normals:originalShape" -p "testGeo_normals:original"; + rename -uid "86DB219C-4B18-6048-44DC-80AA34BBCDDB"; + setAttr -k off ".v"; + setAttr ".vir" yes; + setAttr ".vif" yes; + setAttr -s 10 ".gtag"; + setAttr ".gtag[0].gtagnm" -type "string" "bottom"; + setAttr ".gtag[0].gtagcmp" -type "componentList" 1 "f[0:13]"; + setAttr ".gtag[1].gtagnm" -type "string" "bottomRing"; + setAttr ".gtag[1].gtagcmp" -type "componentList" 1 "e[0:13]"; + setAttr ".gtag[2].gtagnm" -type "string" "cylBottomCap"; + setAttr ".gtag[2].gtagcmp" -type "componentList" 2 "vtx[0:13]" "vtx[28]"; + setAttr ".gtag[3].gtagnm" -type "string" "cylBottomRing"; + setAttr ".gtag[3].gtagcmp" -type "componentList" 1 "vtx[0:13]"; + setAttr ".gtag[4].gtagnm" -type "string" "cylSides"; + setAttr ".gtag[4].gtagcmp" -type "componentList" 1 "vtx[0:27]"; + setAttr ".gtag[5].gtagnm" -type "string" "cylTopCap"; + setAttr ".gtag[5].gtagcmp" -type "componentList" 1 "vtx[14:27]"; + setAttr ".gtag[6].gtagnm" -type "string" "cylTopRing"; + setAttr ".gtag[6].gtagcmp" -type "componentList" 1 "vtx[14:27]"; + setAttr ".gtag[7].gtagnm" -type "string" "sides"; + setAttr ".gtag[7].gtagcmp" -type "componentList" 1 "f[84:153]"; + setAttr ".gtag[8].gtagnm" -type "string" "top"; + setAttr ".gtag[8].gtagcmp" -type "componentList" 1 "f[14:83]"; + setAttr ".gtag[9].gtagnm" -type "string" "topRing"; + setAttr ".gtag[9].gtagcmp" -type "componentList" 1 "e[14:27]"; + setAttr ".pv" -type "double2" 0.49999994039535522 0.50494736433029175 ; + setAttr ".uvst[0].uvsn" -type "string" "map1"; + setAttr -s 176 ".uvst[0].uvsp[0:175]" -type "float2" 0.64077634 0.088455677 + 0.59742028 0.034088865 0.53476888 0.0039175451 0.46523112 0.0039175451 0.40257972 + 0.034088865 0.35922363 0.088455677 0.34375 0.15625 0.35922363 0.22404432 0.40257972 + 0.27841115 0.46523112 0.30858248 0.53476888 0.30858248 0.59742028 0.27841115 0.6407764 + 0.22404432 0.65625 0.15625 0.375 0.6875 0.39285713 0.6875 0.41071427 0.6875 0.4285714 + 0.6875 0.44642854 0.6875 0.46428567 0.6875 0.48214281 0.6875 0.49999994 0.6875 0.51785707 + 0.6875 0.53571421 0.6875 0.55357134 0.6875 0.57142848 0.6875 0.58928561 0.6875 0.60714275 + 0.6875 0.62499988 0.6875 0.64077634 0.77595568 0.59742028 0.72158885 0.53476888 0.69141757 + 0.46523112 0.69141757 0.40257972 0.72158885 0.35922363 0.77595568 0.34375 0.84375 + 0.35922363 0.91154432 0.40257972 0.96591115 0.46523112 0.99608248 0.53476888 0.99608248 + 0.59742028 0.96591115 0.6407764 0.91154432 0.65625 0.84375 0.5 0.15625 0.5 0.84375 + 0.6407764 0.91154432 0.59742028 0.96591115 0.53476888 0.99608248 0.46523112 0.99608248 + 0.40257972 0.96591115 0.35922363 0.91154432 0.34375 0.84375 0.35922363 0.77595568 + 0.40257972 0.72158885 0.46523112 0.69141757 0.53476888 0.69141757 0.59742028 0.72158885 + 0.64077634 0.77595568 0.65625 0.84375 0.6407764 0.91154432 0.59742028 0.96591115 + 0.53476888 0.99608248 0.46523112 0.99608248 0.40257972 0.96591115 0.35922363 0.91154432 + 0.34375 0.84375 0.35922363 0.77595568 0.40257972 0.72158885 0.46523112 0.69141757 + 0.53476888 0.69141757 0.59742028 0.72158885 0.64077634 0.77595568 0.65625 0.84375 + 0.6407764 0.91154432 0.59742028 0.96591115 0.53476888 0.99608248 0.46523112 0.99608248 + 0.40257972 0.96591115 0.35922363 0.91154432 0.34375 0.84375 0.35922363 0.77595568 + 0.40257972 0.72158885 0.46523112 0.69141757 0.53476888 0.69141757 0.59742028 0.72158885 + 0.64077634 0.77595568 0.65625 0.84375 0.6407764 0.91154432 0.59742028 0.96591115 + 0.53476888 0.99608248 0.46523112 0.99608248 0.40257972 0.96591115 0.35922363 0.91154432 + 0.34375 0.84375 0.35922363 0.77595568 0.40257972 0.72158885 0.46523112 0.69141757 + 0.53476888 0.69141757 0.59742028 0.72158885 0.64077634 0.77595568 0.65625 0.84375 + 0.62499988 0.66648871 0.62499988 0.49238431 0.375 0.3125 0.3928571 0.3125 0.375 0.4923842 + 0.41071424 0.3125 0.3928571 0.49238423 0.4285714 0.3125 0.41071427 0.49238417 0.44642854 + 0.3125 0.42857137 0.49238437 0.46428567 0.3125 0.44642854 0.49238428 0.48214281 0.3125 + 0.46428567 0.49238431 0.49999994 0.3125 0.48214281 0.4923844 0.51785707 0.3125 0.49999991 + 0.49238434 0.53571421 0.3125 0.51785707 0.49238431 0.55357134 0.3125 0.53571421 0.4923844 + 0.57142848 0.3125 0.55357134 0.4923844 0.58928561 0.3125 0.57142848 0.49238434 0.60714275 + 0.3125 0.58928561 0.49238431 0.62499988 0.3125 0.60714275 0.49238431 0.62499988 0.52109993 + 0.60714275 0.66648871 0.60714275 0.52109981 0.58928561 0.66648871 0.58928561 0.52109981 + 0.57142848 0.66648871 0.57142848 0.52109993 0.55357134 0.66648871 0.55357134 0.52109987 + 0.53571421 0.66648871 0.53571421 0.52109987 0.51785707 0.66648871 0.51785707 0.52109987 + 0.49999994 0.66648871 0.49999994 0.52109993 0.48214281 0.66648871 0.48214281 0.52109987 + 0.46428567 0.66648871 0.46428567 0.52109987 0.44642854 0.66648871 0.44642854 0.52109993 + 0.4285714 0.66648871 0.4285714 0.52109987 0.41071427 0.66648871 0.41071427 0.52109987 + 0.39285713 0.66648871 0.39285713 0.52109987 0.375 0.66648871 0.375 0.52109987 0.375 + 0.50494736 0.62499988 0.50494736 0.60714275 0.50494736 0.58928561 0.50494736 0.57142848 + 0.50494736 0.55357134 0.50494736 0.53571421 0.50494736 0.51785707 0.50494736 0.49999994 + 0.50494736 0.48214281 0.50494736 0.46428567 0.50494736 0.44642854 0.50494736 0.4285714 + 0.50494736 0.41071427 0.50494736 0.39285713 0.50494736; + setAttr ".cuvs" -type "string" "map1"; + setAttr ".dcc" -type "string" "Ambient+Diffuse"; + setAttr ".covm[0]" 0 1 1; + setAttr ".cdvm[0]" 0 1 1; + setAttr -s 142 ".vt[0:141]" 1.66750765 -1 -0.80302477 1.15394878 -1 -1.44700384 + 0.41183949 -1 -1.80438352 -0.41183949 -1 -1.80438352 -1.15394688 -1 -1.44700384 -1.66749668 -1 -0.80302668 + -1.85078621 -1 0 -1.66749668 -1 0.80302858 -1.15394688 -1 1.44700527 -0.41183949 -1 1.80438423 + 0.41183949 -1 1.80438423 1.15394878 -1 1.44700527 1.66750765 -1 0.80302858 1.85078859 -1 0 + 0.90097237 0.99999994 -0.43388271 0.62349033 0.99999994 -0.78183126 0.22252083 0.99999994 -0.97492743 + -0.22252083 0.99999994 -0.97492743 -0.62348938 0.99999994 -0.78183126 -0.90096569 0.99999994 -0.43388367 + -0.99999905 0.99999994 0 -0.90096569 0.99999994 0.43388462 -0.62348938 0.99999994 0.78183222 + -0.22252083 0.99999994 0.9749279 0.22252083 0.99999994 0.9749279 0.62349033 0.99999994 0.78183222 + 0.90097237 0.99999994 0.43388462 1 0.99999994 0 0 -1 0 0.70752048 0.99999994 -0.34072304 + 0.48962116 0.99999994 -0.6139617 0.17474556 0.99999994 -0.76559734 -0.1747427 0.99999994 -0.76559734 + -0.48961449 0.99999994 -0.6139617 -0.70751858 0.99999994 -0.34072351 -0.7852869 0.99999994 0 + -0.70751953 0.99999994 0.34072304 -0.4896183 0.99999994 0.61396217 -0.1747427 0.99999994 0.76559925 + 0.17474556 0.99999994 0.76559925 0.48962116 0.99999994 0.61396217 0.70752048 0.99999994 0.34072351 + 0.78528881 0.99999994 0 0.70752048 1.47099113 -0.34072304 0.48962116 1.47099113 -0.6139617 + 0.17474556 1.47099113 -0.76559734 -0.1747427 1.47099113 -0.76559734 -0.48961449 1.47099113 -0.6139617 + -0.70751858 1.47099113 -0.34072351 -0.7852869 1.47099113 0 -0.70751953 1.47099113 0.34072304 + -0.4896183 1.47099113 0.61396217 -0.1747427 1.47099113 0.76559925 0.17474556 1.47099113 0.76559925 + 0.48962116 1.47099113 0.61396217 0.70752048 1.47099113 0.34072351 0.78528881 1.47099113 0 + 0.49795246 1.47099113 -0.2397995 0.34459591 1.47099113 -0.4321022 0.12298584 1.47099113 -0.53882265 + -0.12298298 1.47099113 -0.53882265 -0.34458923 1.47099113 -0.4321022 -0.49794579 1.47099113 -0.23979902 + -0.55268002 1.47099113 4.7683716e-07 -0.49794579 1.47099113 0.2397995 -0.34458923 1.47099113 0.43210411 + -0.12298298 1.47099113 0.53882504 0.12298584 1.47099113 0.53882504 0.34459591 1.47099113 0.43210411 + 0.49795246 1.47099113 0.23979998 0.55268574 1.47099113 0 0.49795246 0.82555848 -0.2397995 + 0.34459591 0.82555848 -0.4321022 0 0.82555848 0 0.12298584 0.82555848 -0.53882265 + -0.12298298 0.82555848 -0.53882265 -0.34458923 0.82555848 -0.4321022 -0.49794579 0.82555848 -0.23979902 + -0.55268002 0.82555848 4.7683716e-07 -0.49794579 0.82555848 0.2397995 -0.34458923 0.82555848 0.43210459 + -0.12298298 0.82555848 0.53882504 0.12298584 0.82555848 0.53882504 0.34459591 0.82555848 0.43210411 + 0.49795246 0.82555848 0.23980141 0.55268574 0.82555848 0 0.90097237 0.88793999 -0.43388271 + 1 0.88793999 0 0.90097237 0.88793999 0.43388462 0.62349033 0.88793999 0.78183222 + 0.22252083 0.88793999 0.9749279 -0.22252083 0.88793999 0.9749279 -0.62348938 0.88793999 0.78183222 + -0.90096569 0.88793999 0.43388462 -0.99999905 0.88793999 0 -0.90096569 0.88793999 -0.43388367 + -0.62348938 0.88793999 -0.78183126 -0.22252083 0.88793999 -0.97492743 0.22252083 0.88793999 -0.97492743 + 0.62349033 0.88793999 -0.78183126 0.90097237 0.11253291 -0.43388271 0.91386604 0.031318247 -0.44009113 + 0.95101261 -0.040616632 -0.45798016 1.055540085 -0.040616453 0 1.014309883 0.031318247 0 + 1 0.11253291 0 0.95101261 -0.040616632 0.45798254 0.91386604 0.031318247 0.44009399 + 0.90097237 0.11253291 0.43388462 0.6581192 -0.040616632 0.82525492 0.63241386 0.031318247 0.79301977 + 0.62349033 0.11253291 0.78183222 0.2348814 -0.040616632 1.029074669 0.22570515 0.031318247 0.98887825 + 0.22252083 0.11253291 0.9749279 -0.23487949 -0.040616632 1.029074669 -0.22570324 0.031318247 0.98887825 + -0.22252083 0.11253291 0.9749279 -0.65811825 -0.040616632 0.82525492 -0.632411 0.031318247 0.79301977 + -0.62348938 0.11253291 0.78183222 -0.95100498 -0.040616632 0.45798254 -0.91385746 0.031318247 0.44009399 + -0.90096569 0.11253291 0.43388462 -1.055538177 -0.040616632 0 -1.014306068 0.031318247 0 + -0.99999905 0.11253268 0 -0.95100498 -0.040616632 -0.45798159 -0.91385746 0.031318247 -0.44009209 + -0.90096569 0.11253268 -0.43388367 -0.65811825 -0.040616632 -0.82525396 -0.632411 0.031318247 -0.79301882 + -0.62348938 0.11253291 -0.78183126 -0.23487949 -0.040616632 -1.029074192 -0.22570324 0.031318247 -0.9888773 + -0.22252083 0.11253291 -0.97492743 0.2348814 -0.040616632 -1.029074192 0.22570515 0.031318247 -0.9888773 + 0.22252083 0.11253291 -0.97492743 0.6581192 -0.040616632 -0.82525396 0.63241386 0.031318247 -0.79301882 + 0.62349033 0.11253291 -0.78183126; + setAttr -s 294 ".ed"; + setAttr ".ed[0:165]" 0 1 0 1 2 0 2 3 0 3 4 0 4 5 0 5 6 0 6 7 0 7 8 0 8 9 0 + 9 10 0 10 11 0 11 12 0 12 13 0 13 0 0 14 15 0 15 16 0 16 17 0 17 18 0 18 19 0 19 20 0 + 20 21 0 21 22 0 22 23 0 23 24 0 24 25 0 25 26 0 26 27 0 27 14 0 28 0 1 28 1 1 28 2 1 + 28 3 1 28 4 1 28 5 1 28 6 1 28 7 1 28 8 1 28 9 1 28 10 1 28 11 1 28 12 1 28 13 1 + 14 29 1 15 30 1 29 30 0 16 31 1 30 31 0 17 32 1 31 32 0 18 33 1 32 33 0 19 34 1 33 34 0 + 20 35 1 34 35 0 21 36 1 35 36 0 22 37 1 36 37 0 23 38 1 37 38 0 24 39 1 38 39 0 25 40 1 + 39 40 0 26 41 1 40 41 0 27 42 1 41 42 0 42 29 0 29 43 1 30 44 1 43 44 0 31 45 1 44 45 0 + 32 46 1 45 46 0 33 47 1 46 47 0 34 48 1 47 48 0 35 49 1 48 49 0 36 50 1 49 50 0 37 51 1 + 50 51 0 38 52 1 51 52 0 39 53 1 52 53 0 40 54 1 53 54 0 41 55 1 54 55 0 42 56 1 55 56 0 + 56 43 0 43 57 1 44 58 1 57 58 0 45 59 1 58 59 0 46 60 1 59 60 0 47 61 1 60 61 0 48 62 1 + 61 62 0 49 63 1 62 63 0 50 64 1 63 64 0 51 65 1 64 65 0 52 66 1 65 66 0 53 67 1 66 67 0 + 54 68 1 67 68 0 55 69 1 68 69 0 56 70 1 69 70 0 70 57 0 57 71 1 58 72 1 71 72 0 72 73 1 + 71 73 1 59 74 1 72 74 0 74 73 1 60 75 1 74 75 0 75 73 1 61 76 1 75 76 0 76 73 1 62 77 1 + 76 77 0 77 73 1 63 78 1 77 78 0 78 73 1 64 79 1 78 79 0 79 73 1 65 80 1 79 80 0 80 73 1 + 66 81 1 80 81 0 81 73 1 67 82 1 81 82 0 82 73 1 68 83 1 82 83 0 83 73 1 69 84 1 83 84 0 + 84 73 1 70 85 1 84 85 0; + setAttr ".ed[166:293]" 85 73 1 85 71 0 86 14 1 87 27 1 88 26 1 89 25 1 90 24 1 + 91 23 1 92 22 1 93 21 1 94 20 1 95 19 1 96 18 1 97 17 1 98 16 1 99 15 1 86 87 1 87 88 1 + 88 89 1 89 90 1 90 91 1 91 92 1 92 93 1 93 94 1 94 95 1 95 96 1 96 97 1 97 98 1 98 99 1 + 99 86 1 141 100 1 102 139 1 102 101 1 101 104 1 104 103 1 103 102 1 101 100 1 100 105 1 + 105 104 1 107 106 1 106 103 1 105 108 1 108 107 1 110 109 1 109 106 1 108 111 1 111 110 1 + 113 112 1 112 109 1 111 114 1 114 113 1 116 115 1 115 112 1 114 117 1 117 116 1 119 118 1 + 118 115 1 117 120 1 120 119 1 122 121 1 121 118 1 120 123 1 123 122 1 125 124 1 124 121 1 + 123 126 1 126 125 1 128 127 1 127 124 1 126 129 1 129 128 1 131 130 1 130 127 1 129 132 1 + 132 131 1 134 133 1 133 130 1 132 135 1 135 134 1 137 136 1 136 133 1 135 138 1 138 137 1 + 140 139 1 139 136 1 138 141 1 141 140 1 1 139 1 102 0 1 2 136 1 3 133 1 4 130 1 5 127 1 + 6 124 1 7 121 1 8 118 1 9 115 1 10 112 1 11 109 1 12 106 1 13 103 1 100 86 1 87 105 1 + 88 108 1 89 111 1 90 114 1 91 117 1 92 120 1 93 123 1 94 126 1 95 129 1 96 132 1 + 97 135 1 98 138 1 99 141 1 104 107 1 107 110 1 110 113 1 113 116 1 116 119 1 119 122 1 + 122 125 1 125 128 1 128 131 1 131 134 1 134 137 1 137 140 1 101 140 1; + setAttr -s 154 -ch 588 ".fc[0:153]" -type "polyFaces" + f 3 -1 -29 29 + mu 0 3 1 0 43 + f 3 -2 -30 30 + mu 0 3 2 1 43 + f 3 -3 -31 31 + mu 0 3 3 2 43 + f 3 -4 -32 32 + mu 0 3 4 3 43 + f 3 -5 -33 33 + mu 0 3 5 4 43 + f 3 -6 -34 34 + mu 0 3 6 5 43 + f 3 -7 -35 35 + mu 0 3 7 6 43 + f 3 -8 -36 36 + mu 0 3 8 7 43 + f 3 -9 -37 37 + mu 0 3 9 8 43 + f 3 -10 -38 38 + mu 0 3 10 9 43 + f 3 -11 -39 39 + mu 0 3 11 10 43 + f 3 -12 -40 40 + mu 0 3 12 11 43 + f 3 -13 -41 41 + mu 0 3 13 12 43 + f 3 -14 -42 28 + mu 0 3 0 13 43 + f 3 128 129 -131 + mu 0 3 87 88 44 + f 3 132 133 -130 + mu 0 3 88 89 44 + f 3 135 136 -134 + mu 0 3 89 90 44 + f 3 138 139 -137 + mu 0 3 90 91 44 + f 3 141 142 -140 + mu 0 3 91 92 44 + f 3 144 145 -143 + mu 0 3 92 93 44 + f 3 147 148 -146 + mu 0 3 93 94 44 + f 3 150 151 -149 + mu 0 3 94 95 44 + f 3 153 154 -152 + mu 0 3 95 96 44 + f 3 156 157 -155 + mu 0 3 96 97 44 + f 3 159 160 -158 + mu 0 3 97 98 44 + f 3 162 163 -161 + mu 0 3 98 99 44 + f 3 165 166 -164 + mu 0 3 99 100 44 + f 3 167 130 -167 + mu 0 3 100 87 44 + f 4 14 43 -45 -43 + mu 0 4 41 40 46 45 + f 4 15 45 -47 -44 + mu 0 4 40 39 47 46 + f 4 16 47 -49 -46 + mu 0 4 39 38 48 47 + f 4 17 49 -51 -48 + mu 0 4 38 37 49 48 + f 4 18 51 -53 -50 + mu 0 4 37 36 50 49 + f 4 19 53 -55 -52 + mu 0 4 36 35 51 50 + f 4 20 55 -57 -54 + mu 0 4 35 34 52 51 + f 4 21 57 -59 -56 + mu 0 4 34 33 53 52 + f 4 22 59 -61 -58 + mu 0 4 33 32 54 53 + f 4 23 61 -63 -60 + mu 0 4 32 31 55 54 + f 4 24 63 -65 -62 + mu 0 4 31 30 56 55 + f 4 25 65 -67 -64 + mu 0 4 30 29 57 56 + f 4 26 67 -69 -66 + mu 0 4 29 42 58 57 + f 4 27 42 -70 -68 + mu 0 4 42 41 45 58 + f 4 44 71 -73 -71 + mu 0 4 45 46 60 59 + f 4 46 73 -75 -72 + mu 0 4 46 47 61 60 + f 4 48 75 -77 -74 + mu 0 4 47 48 62 61 + f 4 50 77 -79 -76 + mu 0 4 48 49 63 62 + f 4 52 79 -81 -78 + mu 0 4 49 50 64 63 + f 4 54 81 -83 -80 + mu 0 4 50 51 65 64 + f 4 56 83 -85 -82 + mu 0 4 51 52 66 65 + f 4 58 85 -87 -84 + mu 0 4 52 53 67 66 + f 4 60 87 -89 -86 + mu 0 4 53 54 68 67 + f 4 62 89 -91 -88 + mu 0 4 54 55 69 68 + f 4 64 91 -93 -90 + mu 0 4 55 56 70 69 + f 4 66 93 -95 -92 + mu 0 4 56 57 71 70 + f 4 68 95 -97 -94 + mu 0 4 57 58 72 71 + f 4 69 70 -98 -96 + mu 0 4 58 45 59 72 + f 4 72 99 -101 -99 + mu 0 4 59 60 74 73 + f 4 74 101 -103 -100 + mu 0 4 60 61 75 74 + f 4 76 103 -105 -102 + mu 0 4 61 62 76 75 + f 4 78 105 -107 -104 + mu 0 4 62 63 77 76 + f 4 80 107 -109 -106 + mu 0 4 63 64 78 77 + f 4 82 109 -111 -108 + mu 0 4 64 65 79 78 + f 4 84 111 -113 -110 + mu 0 4 65 66 80 79 + f 4 86 113 -115 -112 + mu 0 4 66 67 81 80 + f 4 88 115 -117 -114 + mu 0 4 67 68 82 81 + f 4 90 117 -119 -116 + mu 0 4 68 69 83 82 + f 4 92 119 -121 -118 + mu 0 4 69 70 84 83 + f 4 94 121 -123 -120 + mu 0 4 70 71 85 84 + f 4 96 123 -125 -122 + mu 0 4 71 72 86 85 + f 4 97 98 -126 -124 + mu 0 4 72 59 73 86 + f 4 100 127 -129 -127 + mu 0 4 73 74 88 87 + f 4 102 131 -133 -128 + mu 0 4 74 75 89 88 + f 4 104 134 -136 -132 + mu 0 4 75 76 90 89 + f 4 106 137 -139 -135 + mu 0 4 76 77 91 90 + f 4 108 140 -142 -138 + mu 0 4 77 78 92 91 + f 4 110 143 -145 -141 + mu 0 4 78 79 93 92 + f 4 112 146 -148 -144 + mu 0 4 79 80 94 93 + f 4 114 149 -151 -147 + mu 0 4 80 81 95 94 + f 4 116 152 -154 -150 + mu 0 4 81 82 96 95 + f 4 118 155 -157 -153 + mu 0 4 82 83 97 96 + f 4 120 158 -160 -156 + mu 0 4 83 84 98 97 + f 4 122 161 -163 -159 + mu 0 4 84 85 99 98 + f 4 124 164 -166 -162 + mu 0 4 85 86 100 99 + f 4 125 126 -168 -165 + mu 0 4 86 73 87 100 + f 4 -183 168 -28 -170 + mu 0 4 133 101 28 27 + f 4 -184 169 -27 -171 + mu 0 4 135 133 27 26 + f 4 -185 170 -26 -172 + mu 0 4 137 135 26 25 + f 4 -186 171 -25 -173 + mu 0 4 139 137 25 24 + f 4 -187 172 -24 -174 + mu 0 4 141 139 24 23 + f 4 -188 173 -23 -175 + mu 0 4 143 141 23 22 + f 4 -189 174 -22 -176 + mu 0 4 145 143 22 21 + f 4 -190 175 -21 -177 + mu 0 4 147 145 21 20 + f 4 -191 176 -20 -178 + mu 0 4 149 147 20 19 + f 4 -192 177 -19 -179 + mu 0 4 151 149 19 18 + f 4 -193 178 -18 -180 + mu 0 4 153 151 18 17 + f 4 -194 179 -17 -181 + mu 0 4 155 153 17 16 + f 4 -195 180 -16 -182 + mu 0 4 157 155 16 15 + f 4 -196 181 -15 -169 + mu 0 4 159 157 15 14 + f 4 198 199 200 201 + mu 0 4 102 162 163 131 + f 4 202 203 204 -200 + mu 0 4 162 132 134 163 + f 4 0 253 -198 254 + mu 0 4 103 104 107 105 + f 4 1 255 -251 -254 + mu 0 4 104 106 109 107 + f 4 2 256 -247 -256 + mu 0 4 106 108 111 109 + f 4 3 257 -243 -257 + mu 0 4 108 110 113 111 + f 4 4 258 -239 -258 + mu 0 4 110 112 115 113 + f 4 5 259 -235 -259 + mu 0 4 112 114 117 115 + f 4 6 260 -231 -260 + mu 0 4 114 116 119 117 + f 4 7 261 -227 -261 + mu 0 4 116 118 121 119 + f 4 8 262 -223 -262 + mu 0 4 118 120 123 121 + f 4 9 263 -219 -263 + mu 0 4 120 122 125 123 + f 4 10 264 -215 -264 + mu 0 4 122 124 127 125 + f 4 11 265 -211 -265 + mu 0 4 124 126 129 127 + f 4 12 266 -207 -266 + mu 0 4 126 128 131 129 + f 4 13 -255 -202 -267 + mu 0 4 128 130 102 131 + f 4 -204 267 182 268 + mu 0 4 134 132 101 133 + f 4 -208 -269 183 269 + mu 0 4 136 134 133 135 + f 4 -212 -270 184 270 + mu 0 4 138 136 135 137 + f 4 -216 -271 185 271 + mu 0 4 140 138 137 139 + f 4 -220 -272 186 272 + mu 0 4 142 140 139 141 + f 4 -224 -273 187 273 + mu 0 4 144 142 141 143 + f 4 -228 -274 188 274 + mu 0 4 146 144 143 145 + f 4 -232 -275 189 275 + mu 0 4 148 146 145 147 + f 4 -236 -276 190 276 + mu 0 4 150 148 147 149 + f 4 -240 -277 191 277 + mu 0 4 152 150 149 151 + f 4 -244 -278 192 278 + mu 0 4 154 152 151 153 + f 4 -248 -279 193 279 + mu 0 4 156 154 153 155 + f 4 -252 -280 194 280 + mu 0 4 158 156 155 157 + f 4 -197 -281 195 -268 + mu 0 4 160 158 157 159 + f 4 -201 281 205 206 + mu 0 4 131 163 164 129 + f 4 -205 207 208 -282 + mu 0 4 163 134 136 164 + f 4 -206 282 209 210 + mu 0 4 129 164 165 127 + f 4 -209 211 212 -283 + mu 0 4 164 136 138 165 + f 4 -210 283 213 214 + mu 0 4 127 165 166 125 + f 4 -213 215 216 -284 + mu 0 4 165 138 140 166 + f 4 -214 284 217 218 + mu 0 4 125 166 167 123 + f 4 -217 219 220 -285 + mu 0 4 166 140 142 167 + f 4 -218 285 221 222 + mu 0 4 123 167 168 121 + f 4 -221 223 224 -286 + mu 0 4 167 142 144 168 + f 4 -222 286 225 226 + mu 0 4 121 168 169 119 + f 4 -225 227 228 -287 + mu 0 4 168 144 146 169 + f 4 -226 287 229 230 + mu 0 4 119 169 170 117 + f 4 -229 231 232 -288 + mu 0 4 169 146 148 170 + f 4 -230 288 233 234 + mu 0 4 117 170 171 115 + f 4 -233 235 236 -289 + mu 0 4 170 148 150 171 + f 4 -234 289 237 238 + mu 0 4 115 171 172 113 + f 4 -237 239 240 -290 + mu 0 4 171 150 152 172 + f 4 -238 290 241 242 + mu 0 4 113 172 173 111 + f 4 -241 243 244 -291 + mu 0 4 172 152 154 173 + f 4 -242 291 245 246 + mu 0 4 111 173 174 109 + f 4 -245 247 248 -292 + mu 0 4 173 154 156 174 + f 4 -246 292 249 250 + mu 0 4 109 174 175 107 + f 4 -249 251 252 -293 + mu 0 4 174 156 158 175 + f 4 -203 293 -253 196 + mu 0 4 160 161 175 158 + f 4 -199 197 -250 -294 + mu 0 4 161 105 107 175; + setAttr ".cd" -type "dataPolyComponent" Index_Data Edge 0 ; + setAttr ".cvd" -type "dataPolyComponent" Index_Data Vertex 0 ; + setAttr ".pd[0]" -type "dataPolyComponent" Index_Data UV 0 ; + setAttr ".hfd" -type "dataPolyComponent" Index_Data Face 0 ; + setAttr ".dr" 1; +createNode mesh -n "testGeo_normals:polySurfaceShape2" -p "testGeo_normals:original"; + rename -uid "68D1A8CC-4230-6426-6A1C-8987F67A0858"; + setAttr -k off ".v"; + setAttr ".io" yes; + setAttr ".vir" yes; + setAttr ".vif" yes; + setAttr -s 10 ".gtag"; + setAttr ".gtag[0].gtagnm" -type "string" "bottom"; + setAttr ".gtag[0].gtagcmp" -type "componentList" 1 "f[14:27]"; + setAttr ".gtag[1].gtagnm" -type "string" "bottomRing"; + setAttr ".gtag[1].gtagcmp" -type "componentList" 1 "e[0:13]"; + setAttr ".gtag[2].gtagnm" -type "string" "cylBottomCap"; + setAttr ".gtag[2].gtagcmp" -type "componentList" 2 "vtx[0:13]" "vtx[28]"; + setAttr ".gtag[3].gtagnm" -type "string" "cylBottomRing"; + setAttr ".gtag[3].gtagcmp" -type "componentList" 1 "vtx[0:13]"; + setAttr ".gtag[4].gtagnm" -type "string" "cylSides"; + setAttr ".gtag[4].gtagcmp" -type "componentList" 1 "vtx[0:27]"; + setAttr ".gtag[5].gtagnm" -type "string" "cylTopCap"; + setAttr ".gtag[5].gtagcmp" -type "componentList" 2 "vtx[14:27]" "vtx[29]"; + setAttr ".gtag[6].gtagnm" -type "string" "cylTopRing"; + setAttr ".gtag[6].gtagcmp" -type "componentList" 1 "vtx[14:27]"; + setAttr ".gtag[7].gtagnm" -type "string" "sides"; + setAttr ".gtag[7].gtagcmp" -type "componentList" 1 "f[0:13]"; + setAttr ".gtag[8].gtagnm" -type "string" "top"; + setAttr ".gtag[8].gtagcmp" -type "componentList" 1 "f[28:41]"; + setAttr ".gtag[9].gtagnm" -type "string" "topRing"; + setAttr ".gtag[9].gtagcmp" -type "componentList" 1 "e[14:27]"; + setAttr ".pv" -type "double2" 0.5 0.84375002980232239 ; + setAttr ".uvst[0].uvsn" -type "string" "map1"; + setAttr -s 60 ".uvst[0].uvsp[0:59]" -type "float2" 0.64077634 0.088455677 + 0.59742028 0.034088865 0.53476888 0.0039175451 0.46523112 0.0039175451 0.40257972 + 0.034088865 0.35922363 0.088455677 0.34375 0.15625 0.35922363 0.22404432 0.40257972 + 0.27841115 0.46523112 0.30858248 0.53476888 0.30858248 0.59742028 0.27841115 0.6407764 + 0.22404432 0.65625 0.15625 0.375 0.3125 0.39285713 0.3125 0.41071427 0.3125 0.4285714 + 0.3125 0.44642854 0.3125 0.46428567 0.3125 0.48214281 0.3125 0.49999994 0.3125 0.51785707 + 0.3125 0.53571421 0.3125 0.55357134 0.3125 0.57142848 0.3125 0.58928561 0.3125 0.60714275 + 0.3125 0.62499988 0.3125 0.375 0.6875 0.39285713 0.6875 0.41071427 0.6875 0.4285714 + 0.6875 0.44642854 0.6875 0.46428567 0.6875 0.48214281 0.6875 0.49999994 0.6875 0.51785707 + 0.6875 0.53571421 0.6875 0.55357134 0.6875 0.57142848 0.6875 0.58928561 0.6875 0.60714275 + 0.6875 0.62499988 0.6875 0.64077634 0.77595568 0.59742028 0.72158885 0.53476888 0.69141757 + 0.46523112 0.69141757 0.40257972 0.72158885 0.35922363 0.77595568 0.34375 0.84375 + 0.35922363 0.91154432 0.40257972 0.96591115 0.46523112 0.99608248 0.53476888 0.99608248 + 0.59742028 0.96591115 0.6407764 0.91154432 0.65625 0.84375 0.5 0.15625 0.5 0.84375; + setAttr ".cuvs" -type "string" "map1"; + setAttr ".dcc" -type "string" "Ambient+Diffuse"; + setAttr ".covm[0]" 0 1 1; + setAttr ".cdvm[0]" 0 1 1; + setAttr -s 30 ".vt[0:29]" 0.90096891 -1 -0.43388346 0.62348992 -1 -0.78183126 + 0.22252111 -1 -0.97492778 -0.22252071 -1 -0.97492784 -0.62348956 -1 -0.7818315 -0.90096867 -1 -0.43388385 + -0.99999988 -1 -1.7881393e-07 -0.90096885 -1 0.43388355 -0.62348986 -1 0.78183132 + -0.22252104 -1 0.97492778 0.22252083 -1 0.9749279 0.62348974 -1 0.7818315 0.90096885 -1 0.43388376 + 1 -1 0 0.90096891 1 -0.43388346 0.62348992 1 -0.78183126 0.22252111 1 -0.97492778 + -0.22252071 1 -0.97492784 -0.62348956 1 -0.7818315 -0.90096867 1 -0.43388385 -0.99999988 1 -1.7881393e-07 + -0.90096885 1 0.43388355 -0.62348986 1 0.78183132 -0.22252104 1 0.97492778 0.22252083 1 0.9749279 + 0.62348974 1 0.7818315 0.90096885 1 0.43388376 1 1 0 0 -1 0 0 1 0; + setAttr -s 70 ".ed[0:69]" 0 1 0 1 2 0 2 3 0 3 4 0 4 5 0 5 6 0 6 7 0 + 7 8 0 8 9 0 9 10 0 10 11 0 11 12 0 12 13 0 13 0 0 14 15 0 15 16 0 16 17 0 17 18 0 + 18 19 0 19 20 0 20 21 0 21 22 0 22 23 0 23 24 0 24 25 0 25 26 0 26 27 0 27 14 0 0 14 1 + 1 15 1 2 16 1 3 17 1 4 18 1 5 19 1 6 20 1 7 21 1 8 22 1 9 23 1 10 24 1 11 25 1 12 26 1 + 13 27 1 28 0 1 28 1 1 28 2 1 28 3 1 28 4 1 28 5 1 28 6 1 28 7 1 28 8 1 28 9 1 28 10 1 + 28 11 1 28 12 1 28 13 1 14 29 1 15 29 1 16 29 1 17 29 1 18 29 1 19 29 1 20 29 1 21 29 1 + 22 29 1 23 29 1 24 29 1 25 29 1 26 29 1 27 29 1; + setAttr -s 42 -ch 140 ".fc[0:41]" -type "polyFaces" + f 4 0 29 -15 -29 + mu 0 4 14 15 30 29 + f 4 1 30 -16 -30 + mu 0 4 15 16 31 30 + f 4 2 31 -17 -31 + mu 0 4 16 17 32 31 + f 4 3 32 -18 -32 + mu 0 4 17 18 33 32 + f 4 4 33 -19 -33 + mu 0 4 18 19 34 33 + f 4 5 34 -20 -34 + mu 0 4 19 20 35 34 + f 4 6 35 -21 -35 + mu 0 4 20 21 36 35 + f 4 7 36 -22 -36 + mu 0 4 21 22 37 36 + f 4 8 37 -23 -37 + mu 0 4 22 23 38 37 + f 4 9 38 -24 -38 + mu 0 4 23 24 39 38 + f 4 10 39 -25 -39 + mu 0 4 24 25 40 39 + f 4 11 40 -26 -40 + mu 0 4 25 26 41 40 + f 4 12 41 -27 -41 + mu 0 4 26 27 42 41 + f 4 13 28 -28 -42 + mu 0 4 27 28 43 42 + f 3 -1 -43 43 + mu 0 3 1 0 58 + f 3 -2 -44 44 + mu 0 3 2 1 58 + f 3 -3 -45 45 + mu 0 3 3 2 58 + f 3 -4 -46 46 + mu 0 3 4 3 58 + f 3 -5 -47 47 + mu 0 3 5 4 58 + f 3 -6 -48 48 + mu 0 3 6 5 58 + f 3 -7 -49 49 + mu 0 3 7 6 58 + f 3 -8 -50 50 + mu 0 3 8 7 58 + f 3 -9 -51 51 + mu 0 3 9 8 58 + f 3 -10 -52 52 + mu 0 3 10 9 58 + f 3 -11 -53 53 + mu 0 3 11 10 58 + f 3 -12 -54 54 + mu 0 3 12 11 58 + f 3 -13 -55 55 + mu 0 3 13 12 58 + f 3 -14 -56 42 + mu 0 3 0 13 58 + f 3 14 57 -57 + mu 0 3 56 55 59 + f 3 15 58 -58 + mu 0 3 55 54 59 + f 3 16 59 -59 + mu 0 3 54 53 59 + f 3 17 60 -60 + mu 0 3 53 52 59 + f 3 18 61 -61 + mu 0 3 52 51 59 + f 3 19 62 -62 + mu 0 3 51 50 59 + f 3 20 63 -63 + mu 0 3 50 49 59 + f 3 21 64 -64 + mu 0 3 49 48 59 + f 3 22 65 -65 + mu 0 3 48 47 59 + f 3 23 66 -66 + mu 0 3 47 46 59 + f 3 24 67 -67 + mu 0 3 46 45 59 + f 3 25 68 -68 + mu 0 3 45 44 59 + f 3 26 69 -69 + mu 0 3 44 57 59 + f 3 27 56 -70 + mu 0 3 57 56 59; + setAttr ".cd" -type "dataPolyComponent" Index_Data Edge 0 ; + setAttr ".cvd" -type "dataPolyComponent" Index_Data Vertex 0 ; + setAttr ".pd[0]" -type "dataPolyComponent" Index_Data UV 0 ; + setAttr ".hfd" -type "dataPolyComponent" Index_Data Face 0 ; +createNode transform -n "testGeo_normals_ABC:original"; + rename -uid "EC22269F-49F1-B3CF-3314-70BA5C508E0A"; + setAttr ".t" -type "double3" 0 0 -2.2574910921832889 ; + setAttr ".s" -type "double3" 0.57325892802804179 0.57325892802804179 0.57325892802804179 ; +createNode mesh -n "testGeo_normals_ABC:originalShape" -p "testGeo_normals_ABC:original"; + rename -uid "597B40FB-4C9B-196B-DB8A-2FBF5C49662A"; + setAttr -k off ".v"; + setAttr ".vir" yes; + setAttr ".vif" yes; + setAttr ".uvst[0].uvsn" -type "string" "map1"; + setAttr -s 176 ".uvst[0].uvsp[0:175]" -type "float2" 0.64077634 0.088455677 + 0.59742028 0.034088865 0.53476888 0.0039175451 0.46523112 0.0039175451 0.40257972 + 0.034088865 0.35922363 0.088455677 0.34375 0.15625 0.35922363 0.22404432 0.40257972 + 0.27841115 0.46523112 0.30858248 0.53476888 0.30858248 0.59742028 0.27841115 0.6407764 + 0.22404432 0.65625 0.15625 0.375 0.6875 0.39285713 0.6875 0.41071427 0.6875 0.4285714 + 0.6875 0.44642854 0.6875 0.46428567 0.6875 0.48214281 0.6875 0.49999994 0.6875 0.51785707 + 0.6875 0.53571421 0.6875 0.55357134 0.6875 0.57142848 0.6875 0.58928561 0.6875 0.60714275 + 0.6875 0.62499988 0.6875 0.64077634 0.77595568 0.59742028 0.72158885 0.53476888 0.69141757 + 0.46523112 0.69141757 0.40257972 0.72158885 0.35922363 0.77595568 0.34375 0.84375 + 0.35922363 0.91154432 0.40257972 0.96591115 0.46523112 0.99608248 0.53476888 0.99608248 + 0.59742028 0.96591115 0.6407764 0.91154432 0.65625 0.84375 0.5 0.15625 0.5 0.84375 + 0.6407764 0.91154432 0.59742028 0.96591115 0.53476888 0.99608248 0.46523112 0.99608248 + 0.40257972 0.96591115 0.35922363 0.91154432 0.34375 0.84375 0.35922363 0.77595568 + 0.40257972 0.72158885 0.46523112 0.69141757 0.53476888 0.69141757 0.59742028 0.72158885 + 0.64077634 0.77595568 0.65625 0.84375 0.6407764 0.91154432 0.59742028 0.96591115 + 0.53476888 0.99608248 0.46523112 0.99608248 0.40257972 0.96591115 0.35922363 0.91154432 + 0.34375 0.84375 0.35922363 0.77595568 0.40257972 0.72158885 0.46523112 0.69141757 + 0.53476888 0.69141757 0.59742028 0.72158885 0.64077634 0.77595568 0.65625 0.84375 + 0.6407764 0.91154432 0.59742028 0.96591115 0.53476888 0.99608248 0.46523112 0.99608248 + 0.40257972 0.96591115 0.35922363 0.91154432 0.34375 0.84375 0.35922363 0.77595568 + 0.40257972 0.72158885 0.46523112 0.69141757 0.53476888 0.69141757 0.59742028 0.72158885 + 0.64077634 0.77595568 0.65625 0.84375 0.6407764 0.91154432 0.59742028 0.96591115 + 0.53476888 0.99608248 0.46523112 0.99608248 0.40257972 0.96591115 0.35922363 0.91154432 + 0.34375 0.84375 0.35922363 0.77595568 0.40257972 0.72158885 0.46523112 0.69141757 + 0.53476888 0.69141757 0.59742028 0.72158885 0.64077634 0.77595568 0.65625 0.84375 + 0.62499988 0.66648871 0.62499988 0.49238431 0.375 0.3125 0.3928571 0.3125 0.375 0.4923842 + 0.41071424 0.3125 0.3928571 0.49238423 0.4285714 0.3125 0.41071427 0.49238417 0.44642854 + 0.3125 0.42857137 0.49238437 0.46428567 0.3125 0.44642854 0.49238428 0.48214281 0.3125 + 0.46428567 0.49238431 0.49999994 0.3125 0.48214281 0.4923844 0.51785707 0.3125 0.49999991 + 0.49238434 0.53571421 0.3125 0.51785707 0.49238431 0.55357134 0.3125 0.53571421 0.4923844 + 0.57142848 0.3125 0.55357134 0.4923844 0.58928561 0.3125 0.57142848 0.49238434 0.60714275 + 0.3125 0.58928561 0.49238431 0.62499988 0.3125 0.60714275 0.49238431 0.62499988 0.52109993 + 0.60714275 0.66648871 0.60714275 0.52109981 0.58928561 0.66648871 0.58928561 0.52109981 + 0.57142848 0.66648871 0.57142848 0.52109993 0.55357134 0.66648871 0.55357134 0.52109987 + 0.53571421 0.66648871 0.53571421 0.52109987 0.51785707 0.66648871 0.51785707 0.52109987 + 0.49999994 0.66648871 0.49999994 0.52109993 0.48214281 0.66648871 0.48214281 0.52109987 + 0.46428567 0.66648871 0.46428567 0.52109987 0.44642854 0.66648871 0.44642854 0.52109993 + 0.4285714 0.66648871 0.4285714 0.52109987 0.41071427 0.66648871 0.41071427 0.52109987 + 0.39285713 0.66648871 0.39285713 0.52109987 0.375 0.66648871 0.375 0.52109987 0.375 + 0.50494736 0.62499988 0.50494736 0.60714275 0.50494736 0.58928561 0.50494736 0.57142848 + 0.50494736 0.55357134 0.50494736 0.53571421 0.50494736 0.51785707 0.50494736 0.49999994 + 0.50494736 0.48214281 0.50494736 0.46428567 0.50494736 0.44642854 0.50494736 0.4285714 + 0.50494736 0.41071427 0.50494736 0.39285713 0.50494736; + setAttr ".cuvs" -type "string" "map1"; + setAttr ".dcc" -type "string" "Ambient+Diffuse"; + setAttr -s 142 ".vt[0:141]" 1.66750765 -1 -0.80302477 1.15394878 -1 -1.44700384 + 0.41183949 -1 -1.80438352 -0.41183949 -1 -1.80438352 -1.15394688 -1 -1.44700384 -1.66749668 -1 -0.80302668 + -1.85078621 -1 0 -1.66749668 -1 0.80302858 -1.15394688 -1 1.44700527 -0.41183949 -1 1.80438423 + 0.41183949 -1 1.80438423 1.15394878 -1 1.44700527 1.66750765 -1 0.80302858 1.85078859 -1 0 + 0.90097237 0.99999994 -0.43388271 0.62349033 0.99999994 -0.78183126 0.22252083 0.99999994 -0.97492743 + -0.22252083 0.99999994 -0.97492743 -0.62348938 0.99999994 -0.78183126 -0.90096569 0.99999994 -0.43388367 + -0.99999905 0.99999994 0 -0.90096569 0.99999994 0.43388462 -0.62348938 0.99999994 0.78183222 + -0.22252083 0.99999994 0.9749279 0.22252083 0.99999994 0.9749279 0.62349033 0.99999994 0.78183222 + 0.90097237 0.99999994 0.43388462 1 0.99999994 0 0 -1 0 0.70752048 0.99999994 -0.34072304 + 0.48962116 0.99999994 -0.6139617 0.17474556 0.99999994 -0.76559734 -0.1747427 0.99999994 -0.76559734 + -0.48961449 0.99999994 -0.6139617 -0.70751858 0.99999994 -0.34072351 -0.7852869 0.99999994 0 + -0.70751953 0.99999994 0.34072304 -0.4896183 0.99999994 0.61396217 -0.1747427 0.99999994 0.76559925 + 0.17474556 0.99999994 0.76559925 0.48962116 0.99999994 0.61396217 0.70752048 0.99999994 0.34072351 + 0.78528881 0.99999994 0 0.70752048 1.47099113 -0.34072304 0.48962116 1.47099113 -0.6139617 + 0.17474556 1.47099113 -0.76559734 -0.1747427 1.47099113 -0.76559734 -0.48961449 1.47099113 -0.6139617 + -0.70751858 1.47099113 -0.34072351 -0.7852869 1.47099113 0 -0.70751953 1.47099113 0.34072304 + -0.4896183 1.47099113 0.61396217 -0.1747427 1.47099113 0.76559925 0.17474556 1.47099113 0.76559925 + 0.48962116 1.47099113 0.61396217 0.70752048 1.47099113 0.34072351 0.78528881 1.47099113 0 + 0.49795246 1.47099113 -0.2397995 0.34459591 1.47099113 -0.4321022 0.12298584 1.47099113 -0.53882265 + -0.12298298 1.47099113 -0.53882265 -0.34458923 1.47099113 -0.4321022 -0.49794579 1.47099113 -0.23979902 + -0.55268002 1.47099113 4.7683716e-07 -0.49794579 1.47099113 0.2397995 -0.34458923 1.47099113 0.43210411 + -0.12298298 1.47099113 0.53882504 0.12298584 1.47099113 0.53882504 0.34459591 1.47099113 0.43210411 + 0.49795246 1.47099113 0.23979998 0.55268574 1.47099113 0 0.49795246 0.82555848 -0.2397995 + 0.34459591 0.82555848 -0.4321022 0 0.82555848 0 0.12298584 0.82555848 -0.53882265 + -0.12298298 0.82555848 -0.53882265 -0.34458923 0.82555848 -0.4321022 -0.49794579 0.82555848 -0.23979902 + -0.55268002 0.82555848 4.7683716e-07 -0.49794579 0.82555848 0.2397995 -0.34458923 0.82555848 0.43210459 + -0.12298298 0.82555848 0.53882504 0.12298584 0.82555848 0.53882504 0.34459591 0.82555848 0.43210411 + 0.49795246 0.82555848 0.23980141 0.55268574 0.82555848 0 0.90097237 0.88793999 -0.43388271 + 1 0.88793999 0 0.90097237 0.88793999 0.43388462 0.62349033 0.88793999 0.78183222 + 0.22252083 0.88793999 0.9749279 -0.22252083 0.88793999 0.9749279 -0.62348938 0.88793999 0.78183222 + -0.90096569 0.88793999 0.43388462 -0.99999905 0.88793999 0 -0.90096569 0.88793999 -0.43388367 + -0.62348938 0.88793999 -0.78183126 -0.22252083 0.88793999 -0.97492743 0.22252083 0.88793999 -0.97492743 + 0.62349033 0.88793999 -0.78183126 0.90097237 0.11253291 -0.43388271 0.91386604 0.031318247 -0.44009113 + 0.95101261 -0.040616632 -0.45798016 1.055540085 -0.040616453 0 1.014309883 0.031318247 0 + 1 0.11253291 0 0.95101261 -0.040616632 0.45798254 0.91386604 0.031318247 0.44009399 + 0.90097237 0.11253291 0.43388462 0.6581192 -0.040616632 0.82525492 0.63241386 0.031318247 0.79301977 + 0.62349033 0.11253291 0.78183222 0.2348814 -0.040616632 1.029074669 0.22570515 0.031318247 0.98887825 + 0.22252083 0.11253291 0.9749279 -0.23487949 -0.040616632 1.029074669 -0.22570324 0.031318247 0.98887825 + -0.22252083 0.11253291 0.9749279 -0.65811825 -0.040616632 0.82525492 -0.632411 0.031318247 0.79301977 + -0.62348938 0.11253291 0.78183222 -0.95100498 -0.040616632 0.45798254 -0.91385746 0.031318247 0.44009399 + -0.90096569 0.11253291 0.43388462 -1.055538177 -0.040616632 0 -1.014306068 0.031318247 0 + -0.99999905 0.11253268 0 -0.95100498 -0.040616632 -0.45798159 -0.91385746 0.031318247 -0.44009209 + -0.90096569 0.11253268 -0.43388367 -0.65811825 -0.040616632 -0.82525396 -0.632411 0.031318247 -0.79301882 + -0.62348938 0.11253291 -0.78183126 -0.23487949 -0.040616632 -1.029074192 -0.22570324 0.031318247 -0.9888773 + -0.22252083 0.11253291 -0.97492743 0.2348814 -0.040616632 -1.029074192 0.22570515 0.031318247 -0.9888773 + 0.22252083 0.11253291 -0.97492743 0.6581192 -0.040616632 -0.82525396 0.63241386 0.031318247 -0.79301882 + 0.62349033 0.11253291 -0.78183126; + setAttr -s 294 ".ed"; + setAttr ".ed[0:165]" 1 0 0 0 28 0 28 1 0 2 1 0 28 2 0 3 2 0 28 3 0 4 3 0 + 28 4 0 5 4 0 28 5 0 6 5 0 28 6 0 7 6 0 28 7 0 8 7 0 28 8 0 9 8 0 28 9 0 10 9 0 28 10 0 + 11 10 0 28 11 0 12 11 0 28 12 0 13 12 0 28 13 0 0 13 0 71 72 0 72 73 0 73 71 0 72 74 0 + 74 73 0 74 75 0 75 73 0 75 76 0 76 73 0 76 77 0 77 73 0 77 78 0 78 73 0 78 79 0 79 73 0 + 79 80 0 80 73 0 80 81 0 81 73 0 81 82 0 82 73 0 82 83 0 83 73 0 83 84 0 84 73 0 84 85 0 + 85 73 0 85 71 0 14 15 0 15 30 0 30 29 0 29 14 0 15 16 0 16 31 0 31 30 0 16 17 0 17 32 0 + 32 31 0 17 18 0 18 33 0 33 32 0 18 19 0 19 34 0 34 33 0 19 20 0 20 35 0 35 34 0 20 21 0 + 21 36 0 36 35 0 21 22 0 22 37 0 37 36 0 22 23 0 23 38 0 38 37 0 23 24 0 24 39 0 39 38 0 + 24 25 0 25 40 0 40 39 0 25 26 0 26 41 0 41 40 0 26 27 0 27 42 0 42 41 0 27 14 0 29 42 0 + 30 44 0 44 43 0 43 29 0 31 45 0 45 44 0 32 46 0 46 45 0 33 47 0 47 46 0 34 48 0 48 47 0 + 35 49 0 49 48 0 36 50 0 50 49 0 37 51 0 51 50 0 38 52 0 52 51 0 39 53 0 53 52 0 40 54 0 + 54 53 0 41 55 0 55 54 0 42 56 0 56 55 0 43 56 0 44 58 0 58 57 0 57 43 0 45 59 0 59 58 0 + 46 60 0 60 59 0 47 61 0 61 60 0 48 62 0 62 61 0 49 63 0 63 62 0 50 64 0 64 63 0 51 65 0 + 65 64 0 52 66 0 66 65 0 53 67 0 67 66 0 54 68 0 68 67 0 55 69 0 69 68 0 56 70 0 70 69 0 + 57 70 0 58 72 0 71 57 0 59 74 0 60 75 0 61 76 0 62 77 0 63 78 0 64 79 0 65 80 0 66 81 0 + 67 82 0 68 83 0; + setAttr ".ed[166:293]" 69 84 0 70 85 0 87 86 0 86 14 0 27 87 0 88 87 0 26 88 0 + 89 88 0 25 89 0 90 89 0 24 90 0 91 90 0 23 91 0 92 91 0 22 92 0 93 92 0 21 93 0 94 93 0 + 20 94 0 95 94 0 19 95 0 96 95 0 18 96 0 97 96 0 17 97 0 98 97 0 16 98 0 99 98 0 15 99 0 + 86 99 0 102 101 0 101 104 0 104 103 0 103 102 0 101 100 0 100 105 0 105 104 0 1 139 0 + 139 102 0 102 0 0 2 136 0 136 139 0 3 133 0 133 136 0 4 130 0 130 133 0 5 127 0 127 130 0 + 6 124 0 124 127 0 7 121 0 121 124 0 8 118 0 118 121 0 9 115 0 115 118 0 10 112 0 + 112 115 0 11 109 0 109 112 0 12 106 0 106 109 0 13 103 0 103 106 0 100 86 0 87 105 0 + 108 105 0 88 108 0 111 108 0 89 111 0 114 111 0 90 114 0 117 114 0 91 117 0 120 117 0 + 92 120 0 123 120 0 93 123 0 126 123 0 94 126 0 129 126 0 95 129 0 132 129 0 96 132 0 + 135 132 0 97 135 0 138 135 0 98 138 0 141 138 0 99 141 0 100 141 0 104 107 0 107 106 0 + 108 107 0 107 110 0 110 109 0 111 110 0 110 113 0 113 112 0 114 113 0 113 116 0 116 115 0 + 117 116 0 116 119 0 119 118 0 120 119 0 119 122 0 122 121 0 123 122 0 122 125 0 125 124 0 + 126 125 0 125 128 0 128 127 0 129 128 0 128 131 0 131 130 0 132 131 0 131 134 0 134 133 0 + 135 134 0 134 137 0 137 136 0 138 137 0 137 140 0 140 139 0 141 140 0 101 140 0; + setAttr -s 588 ".n"; + setAttr ".n[0:165]" -type "float3" 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 + -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 + 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 + 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 + -1 0 0 -1 0 0 1 0 0 1 0 0 1 2.4092763e-08 0 1 0 0 1 -5.6216205e-08 0 1 2.4092763e-08 + 0 1 -5.6216205e-08 0 1 -1.6865111e-07 0 1 2.4092763e-08 0 1 -1.6865111e-07 0 1 -1.1243523e-07 + 0 1 2.4092763e-08 0 1 -1.1243523e-07 0 1 0 0 1 2.4092763e-08 0 1 0 0 1 0 0 1 2.4092763e-08 + 0 1 0 0 1 0 0 1 2.4092763e-08 0 1 0 0 1 2.2487001e-07 0 1 2.4092763e-08 0 1 2.2487001e-07 + 0 1 2.8108386e-07 0 1 2.4092763e-08 0 1 2.8108386e-07 0 1 1.1243258e-07 0 1 2.4092763e-08 + 0 1 1.1243258e-07 0 1 5.6216258e-08 0 1 2.4092763e-08 0 1 5.6216258e-08 0 1 0 0 1 + 2.4092763e-08 0 1 0 0 1 0 0 1 2.4092763e-08 0 1 0 0 1 0 0 1 2.4092763e-08 0 0.99999994 + -2.6878257e-07 0 0.99999994 -8.9593243e-08 0 1 -8.9595815e-08 0 1 -2.6878337e-07 + 0 0.99999994 -8.9593243e-08 0 1 1.1199216e-07 0 1 1.1199328e-07 0 1 -8.9595815e-08 + 0 1 1.1199216e-07 0 1 1.7918815e-07 0 1 1.7918835e-07 0 1 1.1199328e-07 0 1 1.7918815e-07 + 0 0.99999994 6.719381e-08 0 1 6.7197725e-08 0 1 1.7918835e-07 0 0.99999994 6.719381e-08 + 0 1 -8.9594799e-08 0 1 -8.9594614e-08 0 1 6.7197725e-08 0 1 -8.9594799e-08 0 1 8.9594991e-08 + 0 1 8.959492e-08 0 1 -8.9594614e-08 0 1 8.9594991e-08 0 1 2.6878561e-07 0 1 2.6878419e-07 + 0 1 8.959492e-08 0 1 2.6878561e-07 0 1 8.9593676e-08 0 1 8.959519e-08 0 1 2.6878419e-07 + 0 1 8.9593676e-08 0 1 -1.1199313e-07 0 1 -1.1199306e-07 0 1 8.959519e-08 0 1 -1.1199313e-07 + 0 1 -1.7918813e-07 0 1 -1.7919021e-07 0 1 -1.1199306e-07 0 1 -1.7918813e-07 0 1 -6.7196922e-08 + 0 1 -6.7194058e-08 0 1 -1.7919021e-07 0 1 -6.7196922e-08 0 1 8.9594053e-08 0 1 8.9594124e-08 + 0 1 -6.7194058e-08 0 1 8.9594053e-08 0 0.99999994 -8.9594266e-08 0 1 -8.9594309e-08 + 0 1 8.9594124e-08 0 0.99999994 -8.9594266e-08 0 0.99999994 -2.6878257e-07 0 1 -2.6878337e-07 + 0 1 -8.9594309e-08 0.90096927 0 -0.43388286 0.62349021 0 -0.78183115 0.62349021 0 + -0.78183115 0.90096927 0 -0.43388286 0.62349021 0 -0.78183115 0.22251935 0 -0.9749282 + 0.22251935 0 -0.9749282 0.62349021 0 -0.78183115 0.22251935 0 -0.9749282 -0.22252057 + 0 -0.97492796 -0.22252057 0 -0.97492796 0.22251935 0 -0.9749282 -0.22252057 0 -0.97492796 + -0.62348914 0 -0.78183204 -0.62348914 0 -0.78183204 -0.22252057 0 -0.97492796 -0.62348914 + 0 -0.78183204 -0.90096658 0 -0.43388855 -0.90096658 0 -0.43388855 -0.62348914 0 -0.78183204 + -0.90096658 0 -0.43388855 -1 0 -1.4113314e-06 -1 0 -1.4113314e-06 -0.90096658 0 -0.43388855 + -1 0 -1.4113314e-06 -0.90096879 0 0.43388373; + setAttr ".n[166:331]" -type "float3" -0.90096879 0 0.43388373 -1 0 -1.4113314e-06 + -0.90096879 0 0.43388373 -0.62349057 0 0.78183085 -0.62349057 0 0.78183085 -0.90096879 + 0 0.43388373 -0.62349057 0 0.78183085 -0.22252148 0 0.97492778 -0.22252148 0 0.97492778 + -0.62349057 0 0.78183085 -0.22252148 0 0.97492778 0.22252148 0 0.97492778 0.22252148 + 0 0.97492778 -0.22252148 0 0.97492778 0.22252148 0 0.97492778 0.62349153 0 0.78183013 + 0.62349153 0 0.78183013 0.22252148 0 0.97492778 0.62349153 0 0.78183013 0.90096945 + 0 0.43388262 0.90096945 0 0.43388262 0.62349153 0 0.78183013 0.90096945 0 0.43388262 + 1 0 -7.3891697e-09 1 0 -7.3891697e-09 0.90096945 0 0.43388262 1 0 -7.3891697e-09 + 0.90096927 0 -0.43388286 0.90096927 0 -0.43388286 1 0 -7.3891697e-09 0 1 0 0 0.99999994 + 0 0 0.99999994 0 0 1 0 0 0.99999994 0 0 1 -5.5175573e-08 0 0.99999994 -5.5175633e-08 + 0 0.99999994 0 0 1 -5.5175573e-08 0 1 -2.2070338e-07 0 0.99999994 -2.2070364e-07 + 0 0.99999994 -5.5175633e-08 0 1 -2.2070338e-07 0 0.99999994 -2.7588104e-07 0 0.99999994 + -2.7588041e-07 0 0.99999994 -2.2070364e-07 0 0.99999994 -2.7588104e-07 0 1 -1.1035085e-07 + 0 1 -1.1035169e-07 0 0.99999994 -2.7588041e-07 0 1 -1.1035085e-07 0 1 0 0 1 0 0 1 + -1.1035169e-07 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 5.5175807e-08 + 0 1 5.5175697e-08 0 1 0 0 1 5.5175807e-08 0 1 1.0258988e-13 0 0.99999994 8.0606325e-14 + 0 1 5.5175697e-08 0 1 1.0258988e-13 0 1 5.5175274e-08 0 1 5.5176827e-08 0 0.99999994 + 8.0606325e-14 0 1 5.5175274e-08 0 1 1.103536e-07 0 1 1.1035302e-07 0 1 5.5176827e-08 + 0 1 1.103536e-07 0 1 0 0 1 0 0 1 1.1035302e-07 0 1 0 0 1 0 0 1 0 0 1 0 -0.90096855 + 0 0.43388438 -0.62348628 0 0.78183424 -0.62348628 0 0.78183424 -0.90096855 0 0.43388438 + -0.62348628 0 0.78183424 -0.22251816 0 0.9749285 -0.22251816 0 0.9749285 -0.62348628 + 0 0.78183424 -0.22251816 0 0.9749285 0.2225199 0 0.9749282 0.2225199 0 0.9749282 + -0.22251816 0 0.9749285 0.2225199 0 0.9749282 0.62349075 0 0.78183067 0.62349075 + 0 0.78183067 0.2225199 0 0.9749282 0.62349075 0 0.78183067 0.90096802 0 0.4338856 + 0.90096802 0 0.4338856 0.62349075 0 0.78183067 0.90096802 0 0.4338856 1 0 7.661459e-09 + 1 0 7.661459e-09 0.90096802 0 0.4338856 1 0 7.661459e-09 0.90096837 -1.2034572e-07 + -0.43388465 0.90096837 -1.2034572e-07 -0.43388465 1 0 7.661459e-09 0.90096837 -1.2034572e-07 + -0.43388465 0.62349325 -2.9012381e-07 -0.78182876 0.62349319 -2.9012384e-07 -0.78182882 + 0.90096837 -1.2034572e-07 -0.43388465 0.62349325 -2.9012381e-07 -0.78182876 0.22252047 + -1.6977668e-07 -0.97492808 0.22252047 -1.6977668e-07 -0.97492808 0.62349319 -2.9012384e-07 + -0.78182882 0.22252047 -1.6977668e-07 -0.97492808 -0.2225192 0 -0.97492838 -0.2225192 + 0 -0.97492838 0.22252047 -1.6977668e-07 -0.97492808 -0.2225192 0 -0.97492838 -0.62348783 + -3.6103717e-07 -0.78183305 -0.62348783 -3.6103717e-07 -0.78183305 -0.2225192 0 -0.97492838 + -0.62348783 -3.6103717e-07 -0.78183305 -0.90096945 -4.6677576e-07 -0.43388256 -0.90096915 + -4.6677638e-07 -0.43388307 -0.62348783 -3.6103717e-07 -0.78183305 -0.90096945 -4.6677576e-07 + -0.43388256 -1 -1.0573861e-07 0 -1 -1.0573861e-07 0 -0.90096915 -4.6677638e-07 -0.43388307 + -1 -1.0573861e-07 0 -0.90096855 0 0.43388438 -0.90096855 0 0.43388438 -1 -1.0573861e-07 + 0 1 0 6.1590639e-09 0.90096903 0 -0.43388331 0.90096903 0 -0.43388322 1 0 0 0.90096927 + 0 0.43388289 1 0 6.1590639e-09 1 0 0 0.90096933 0 0.43388283 0.62348717 0 0.78183359 + 0.90096927 0 0.43388289 0.90096933 0 0.43388283 0.62348729 0 0.78183347 0.22252004 + 0 0.97492814 0.62348717 0 0.78183359 0.62348729 0 0.78183347 0.22252008 0 0.97492808 + -0.22252026 0 0.97492808 0.22252004 0 0.97492814 0.22252008 0 0.97492808 -0.22252029 + 0 0.97492802 -0.62349099 0 0.78183061 -0.22252026 0 0.97492808 -0.22252029 0 0.97492802 + -0.62349105 0 0.78183055; + setAttr ".n[332:497]" -type "float3" -0.90096933 0 0.43388283 -0.62349099 + 0 0.78183061 -0.62349105 0 0.78183055 -0.90096927 0 0.43388277 -1 0 -1.2318111e-08 + -0.90096933 0 0.43388283 -0.90096927 0 0.43388277 -1 0 0 -0.90096903 0 -0.43388337 + -1 0 -1.2318111e-08 -1 0 0 -0.90096903 0 -0.43388322 -0.62349129 0 -0.78183037 -0.90096903 + 0 -0.43388337 -0.90096903 0 -0.43388322 -0.62349135 0 -0.78183037 -0.22252083 0 -0.97492796 + -0.62349129 0 -0.78183037 -0.62349135 0 -0.78183037 -0.2225208 0 -0.97492796 0.22252062 + 0 -0.97492802 -0.22252083 0 -0.97492796 -0.2225208 0 -0.97492796 0.2225206 0 -0.97492796 + 0.62348825 0 -0.78183275 0.22252062 0 -0.97492802 0.2225206 0 -0.97492796 0.62348837 + 0 -0.78183264 0.90096903 0 -0.43388331 0.62348825 0 -0.78183275 0.62348837 0 -0.78183264 + 0.90096903 0 -0.43388322 0.69744688 0.63305426 -0.33587238 0.84372139 0.35077667 + -0.40631282 0.93645942 0.35077584 -2.4070928e-08 0.77410811 0.63305336 -5.6889757e-08 + 0.84372139 0.35077667 -0.40631282 0.90083599 0.01718439 -0.43381935 0.99985236 0.017184136 + 7.9508116e-09 0.93645942 0.35077584 -2.4070928e-08 0.69364768 0.63817579 -0.33404282 + 0.48001862 0.63817507 -0.60192579 0.48264733 0.63305354 -0.60522294 0.69744688 0.63305426 + -0.33587238 0.48001862 0.63817507 -0.60192579 0.17131619 0.63817483 -0.75058877 0.17225467 + 0.6330536 -0.75469953 0.48264733 0.63305354 -0.60522294 0.17131619 0.63817483 -0.75058877 + -0.1713164 0.63817495 -0.75058866 -0.17225458 0.63305372 -0.75469959 0.17225467 0.6330536 + -0.75469953 -0.1713164 0.63817495 -0.75058866 -0.48002025 0.63817513 -0.6019246 -0.48264936 + 0.63305384 -0.60522097 -0.17225458 0.63305372 -0.75469959 -0.48002025 0.63817513 + -0.6019246 -0.69364905 0.63817412 -0.33404312 -0.69744796 0.63305295 -0.33587232 + -0.48264936 0.63305384 -0.60522097 -0.69364905 0.63817412 -0.33404312 -0.76989144 + 0.63817489 2.6556947e-08 -0.77410775 0.63305384 0 -0.69744796 0.63305295 -0.33587232 + -0.76989144 0.63817489 2.6556947e-08 -0.69364899 0.6381743 0.33404288 -0.69744813 + 0.633053 0.33587193 -0.77410775 0.63305384 0 -0.69364899 0.6381743 0.33404288 -0.48001978 + 0.63817531 0.60192466 -0.48264903 0.63305396 0.60522121 -0.69744813 0.633053 0.33587193 + -0.48001978 0.63817531 0.60192466 -0.17131613 0.63817507 0.75058872 -0.17225428 0.63305366 + 0.75469971 -0.48264903 0.63305396 0.60522121 -0.17131613 0.63817507 0.75058872 0.17131592 + 0.63817501 0.75058883 0.17225438 0.6330536 0.75469971 -0.17225428 0.63305366 0.75469971 + 0.17131592 0.63817501 0.75058883 0.48001766 0.63817531 0.60192639 0.48264629 0.63305366 + 0.6052236 0.17225438 0.6330536 0.75469971 0.48001766 0.63817531 0.60192639 0.6936475 + 0.63817602 0.33404249 0.69744688 0.63305444 0.33587191 0.48264629 0.63305366 0.6052236 + 0.6936475 0.63817602 0.33404249 0.76989144 0.63817489 1.3278433e-08 0.77410811 0.63305336 + -5.6889757e-08 0.69744688 0.63305444 0.33587191 0.76989144 0.63817489 1.3278433e-08 + 0.69364768 0.63817579 -0.33404282 0.69744688 0.63305426 -0.33587238 0.77410811 0.63305336 + -5.6889757e-08 0.99985236 0.017184136 7.9508116e-09 0.90083599 0.01718439 -0.43381935 + 0.90096903 0 -0.43388331 1 0 6.1590639e-09 0.90083629 0.017184669 0.43381873 0.99985236 + 0.017184136 7.9508116e-09 1 0 6.1590639e-09 0.90096927 0 0.43388289 0.62339485 0.017184241 + 0.78171837 0.90083629 0.017184669 0.43381873 0.90096927 0 0.43388289 0.62348717 0 + 0.78183359 0.22248709 0.017183075 0.97478414 0.62339485 0.017184241 0.78171837 0.62348717 + 0 0.78183359 0.22252004 0 0.97492814 -0.22248761 0.017182551 0.97478402 0.22248709 + 0.017183075 0.97478414 0.22252004 0 0.97492814 -0.22252026 0 0.97492808 -0.62339878 + 0.017182764 0.78171515 -0.22248761 0.017182551 0.97478402 -0.22252026 0 0.97492808 + -0.62349099 0 0.78183061 -0.90083635 0.017182229 0.43381861 -0.62339878 0.017182764 + 0.78171515 -0.62349099 0 0.78183061 -0.90096933 0 0.43388283 -0.99985242 0.017181335 + -3.3393398e-08 -0.90083635 0.017182229 0.43381861 -0.90096933 0 0.43388283 -1 0 -1.2318111e-08 + -0.90083605 0.017181924 -0.43381917 -0.99985242 0.017181335 -3.3393398e-08 -1 0 -1.2318111e-08 + -0.90096903 0 -0.43388337 -0.6233992 0.017182427 -0.78171498 -0.90083605 0.017181924 + -0.43381917 -0.90096903 0 -0.43388337 -0.62349129 0 -0.78183037 -0.22248816 0.017182119 + -0.97478396 -0.6233992 0.017182427 -0.78171498 -0.62349129 0 -0.78183037 -0.22252083 + 0 -0.97492796 0.22248763 0.017182643 -0.97478408 -0.22248816 0.017182119 -0.97478396 + -0.22252083 0 -0.97492796 0.22252062 0 -0.97492802 0.62339592 0.017183894 -0.78171754 + 0.22248763 0.017182643 -0.97478408 0.22252062 0 -0.97492802 0.62348825 0 -0.78183275 + 0.90083599 0.01718439 -0.43381935 0.62339592 0.017183894 -0.78171754 0.62348825 0 + -0.78183275 0.90096903 0 -0.43388331 0.77410811 0.63305336 -5.6889757e-08 0.93645942 + 0.35077584 -2.4070928e-08 0.84372085 0.35077724 0.40631327 0.69744688 0.63305444 + 0.33587191 0.93645942 0.35077584 -2.4070928e-08 0.99985236 0.017184136 7.9508116e-09 + 0.90083629 0.017184669 0.43381873 0.84372085 0.35077724 0.40631327 0.69744688 0.63305444 + 0.33587191 0.84372085 0.35077724 0.40631327 0.5838713 0.35077566 0.73215479 0.48264629 + 0.63305366 0.6052236 0.84372085 0.35077724 0.40631327 0.90083629 0.017184669 0.43381873; + setAttr ".n[498:587]" -type "float3" 0.62339485 0.017184241 0.78171837 0.5838713 + 0.35077566 0.73215479 0.48264629 0.63305366 0.6052236 0.5838713 0.35077566 0.73215479 + 0.20837983 0.35077348 0.91298187 0.17225438 0.6330536 0.75469971 0.5838713 0.35077566 + 0.73215479 0.62339485 0.017184241 0.78171837 0.22248709 0.017183075 0.97478414 0.20837983 + 0.35077348 0.91298187 0.17225438 0.6330536 0.75469971 0.20837983 0.35077348 0.91298187 + -0.20837854 0.35077262 0.91298246 -0.17225428 0.63305366 0.75469971 0.20837983 0.35077348 + 0.91298187 0.22248709 0.017183075 0.97478414 -0.22248761 0.017182551 0.97478402 -0.20837854 + 0.35077262 0.91298246 -0.17225428 0.63305366 0.75469971 -0.20837854 0.35077262 0.91298246 + -0.58387321 0.35077453 0.73215389 -0.48264903 0.63305396 0.60522121 -0.20837854 0.35077262 + 0.91298246 -0.22248761 0.017182551 0.97478402 -0.62339878 0.017182764 0.78171515 + -0.58387321 0.35077453 0.73215389 -0.48264903 0.63305396 0.60522121 -0.58387321 0.35077453 + 0.73215389 -0.84372205 0.3507733 0.40631422 -0.69744813 0.633053 0.33587193 -0.58387321 + 0.35077453 0.73215389 -0.62339878 0.017182764 0.78171515 -0.90083635 0.017182229 + 0.43381861 -0.84372205 0.3507733 0.40631422 -0.69744813 0.633053 0.33587193 -0.84372205 + 0.3507733 0.40631422 -0.93646049 0.35077307 4.0118064e-08 -0.77410775 0.63305384 + 0 -0.84372205 0.3507733 0.40631422 -0.90083635 0.017182229 0.43381861 -0.99985242 + 0.017181335 -3.3393398e-08 -0.93646049 0.35077307 4.0118064e-08 -0.77410775 0.63305384 + 0 -0.93646049 0.35077307 4.0118064e-08 -0.8437224 0.35077357 -0.40631333 -0.69744796 + 0.63305295 -0.33587232 -0.93646049 0.35077307 4.0118064e-08 -0.99985242 0.017181335 + -3.3393398e-08 -0.90083605 0.017181924 -0.43381917 -0.8437224 0.35077357 -0.40631333 + -0.69744796 0.63305295 -0.33587232 -0.8437224 0.35077357 -0.40631333 -0.58387351 + 0.35077491 -0.73215348 -0.48264936 0.63305384 -0.60522097 -0.8437224 0.35077357 -0.40631333 + -0.90083605 0.017181924 -0.43381917 -0.6233992 0.017182427 -0.78171498 -0.58387351 + 0.35077491 -0.73215348 -0.48264936 0.63305384 -0.60522097 -0.58387351 0.35077491 + -0.73215348 -0.20837893 0.35077289 -0.91298229 -0.17225458 0.63305372 -0.75469959 + -0.58387351 0.35077491 -0.73215348 -0.6233992 0.017182427 -0.78171498 -0.22248816 + 0.017182119 -0.97478396 -0.20837893 0.35077289 -0.91298229 -0.17225458 0.63305372 + -0.75469959 -0.20837893 0.35077289 -0.91298229 0.20838022 0.35077375 -0.91298163 + 0.17225467 0.6330536 -0.75469953 -0.20837893 0.35077289 -0.91298229 -0.22248816 0.017182119 + -0.97478396 0.22248763 0.017182643 -0.97478408 0.20838022 0.35077375 -0.91298163 + 0.17225467 0.6330536 -0.75469953 0.20838022 0.35077375 -0.91298163 0.58387256 0.3507756 + -0.73215389 0.48264733 0.63305354 -0.60522294 0.20838022 0.35077375 -0.91298163 0.22248763 + 0.017182643 -0.97478408 0.62339592 0.017183894 -0.78171754 0.58387256 0.3507756 -0.73215389 + 0.90083599 0.01718439 -0.43381935 0.84372139 0.35077667 -0.40631282 0.58387256 0.3507756 + -0.73215389 0.62339592 0.017183894 -0.78171754 0.84372139 0.35077667 -0.40631282 + 0.69744688 0.63305426 -0.33587238 0.48264733 0.63305354 -0.60522294 0.58387256 0.3507756 + -0.73215389; + setAttr -s 154 -ch 588 ".fc[0:153]" -type "polyFaces" + f 3 0 1 2 + mu 0 3 1 0 43 + f 3 3 -3 4 + mu 0 3 2 1 43 + f 3 5 -5 6 + mu 0 3 3 2 43 + f 3 7 -7 8 + mu 0 3 4 3 43 + f 3 9 -9 10 + mu 0 3 5 4 43 + f 3 11 -11 12 + mu 0 3 6 5 43 + f 3 13 -13 14 + mu 0 3 7 6 43 + f 3 15 -15 16 + mu 0 3 8 7 43 + f 3 17 -17 18 + mu 0 3 9 8 43 + f 3 19 -19 20 + mu 0 3 10 9 43 + f 3 21 -21 22 + mu 0 3 11 10 43 + f 3 23 -23 24 + mu 0 3 12 11 43 + f 3 25 -25 26 + mu 0 3 13 12 43 + f 3 27 -27 -2 + mu 0 3 0 13 43 + f 3 28 29 30 + mu 0 3 87 88 44 + f 3 31 32 -30 + mu 0 3 88 89 44 + f 3 33 34 -33 + mu 0 3 89 90 44 + f 3 35 36 -35 + mu 0 3 90 91 44 + f 3 37 38 -37 + mu 0 3 91 92 44 + f 3 39 40 -39 + mu 0 3 92 93 44 + f 3 41 42 -41 + mu 0 3 93 94 44 + f 3 43 44 -43 + mu 0 3 94 95 44 + f 3 45 46 -45 + mu 0 3 95 96 44 + f 3 47 48 -47 + mu 0 3 96 97 44 + f 3 49 50 -49 + mu 0 3 97 98 44 + f 3 51 52 -51 + mu 0 3 98 99 44 + f 3 53 54 -53 + mu 0 3 99 100 44 + f 3 55 -31 -55 + mu 0 3 100 87 44 + f 4 56 57 58 59 + mu 0 4 41 40 46 45 + f 4 60 61 62 -58 + mu 0 4 40 39 47 46 + f 4 63 64 65 -62 + mu 0 4 39 38 48 47 + f 4 66 67 68 -65 + mu 0 4 38 37 49 48 + f 4 69 70 71 -68 + mu 0 4 37 36 50 49 + f 4 72 73 74 -71 + mu 0 4 36 35 51 50 + f 4 75 76 77 -74 + mu 0 4 35 34 52 51 + f 4 78 79 80 -77 + mu 0 4 34 33 53 52 + f 4 81 82 83 -80 + mu 0 4 33 32 54 53 + f 4 84 85 86 -83 + mu 0 4 32 31 55 54 + f 4 87 88 89 -86 + mu 0 4 31 30 56 55 + f 4 90 91 92 -89 + mu 0 4 30 29 57 56 + f 4 93 94 95 -92 + mu 0 4 29 42 58 57 + f 4 96 -60 97 -95 + mu 0 4 42 41 45 58 + f 4 -59 98 99 100 + mu 0 4 45 46 60 59 + f 4 -63 101 102 -99 + mu 0 4 46 47 61 60 + f 4 -66 103 104 -102 + mu 0 4 47 48 62 61 + f 4 -69 105 106 -104 + mu 0 4 48 49 63 62 + f 4 -72 107 108 -106 + mu 0 4 49 50 64 63 + f 4 -75 109 110 -108 + mu 0 4 50 51 65 64 + f 4 -78 111 112 -110 + mu 0 4 51 52 66 65 + f 4 -81 113 114 -112 + mu 0 4 52 53 67 66 + f 4 -84 115 116 -114 + mu 0 4 53 54 68 67 + f 4 -87 117 118 -116 + mu 0 4 54 55 69 68 + f 4 -90 119 120 -118 + mu 0 4 55 56 70 69 + f 4 -93 121 122 -120 + mu 0 4 56 57 71 70 + f 4 -96 123 124 -122 + mu 0 4 57 58 72 71 + f 4 -98 -101 125 -124 + mu 0 4 58 45 59 72 + f 4 -100 126 127 128 + mu 0 4 59 60 74 73 + f 4 -103 129 130 -127 + mu 0 4 60 61 75 74 + f 4 -105 131 132 -130 + mu 0 4 61 62 76 75 + f 4 -107 133 134 -132 + mu 0 4 62 63 77 76 + f 4 -109 135 136 -134 + mu 0 4 63 64 78 77 + f 4 -111 137 138 -136 + mu 0 4 64 65 79 78 + f 4 -113 139 140 -138 + mu 0 4 65 66 80 79 + f 4 -115 141 142 -140 + mu 0 4 66 67 81 80 + f 4 -117 143 144 -142 + mu 0 4 67 68 82 81 + f 4 -119 145 146 -144 + mu 0 4 68 69 83 82 + f 4 -121 147 148 -146 + mu 0 4 69 70 84 83 + f 4 -123 149 150 -148 + mu 0 4 70 71 85 84 + f 4 -125 151 152 -150 + mu 0 4 71 72 86 85 + f 4 -126 -129 153 -152 + mu 0 4 72 59 73 86 + f 4 -128 154 -29 155 + mu 0 4 73 74 88 87 + f 4 -131 156 -32 -155 + mu 0 4 74 75 89 88 + f 4 -133 157 -34 -157 + mu 0 4 75 76 90 89 + f 4 -135 158 -36 -158 + mu 0 4 76 77 91 90 + f 4 -137 159 -38 -159 + mu 0 4 77 78 92 91 + f 4 -139 160 -40 -160 + mu 0 4 78 79 93 92 + f 4 -141 161 -42 -161 + mu 0 4 79 80 94 93 + f 4 -143 162 -44 -162 + mu 0 4 80 81 95 94 + f 4 -145 163 -46 -163 + mu 0 4 81 82 96 95 + f 4 -147 164 -48 -164 + mu 0 4 82 83 97 96 + f 4 -149 165 -50 -165 + mu 0 4 83 84 98 97 + f 4 -151 166 -52 -166 + mu 0 4 84 85 99 98 + f 4 -153 167 -54 -167 + mu 0 4 85 86 100 99 + f 4 -154 -156 -56 -168 + mu 0 4 86 73 87 100 + f 4 168 169 -97 170 + mu 0 4 133 101 28 27 + f 4 171 -171 -94 172 + mu 0 4 135 133 27 26 + f 4 173 -173 -91 174 + mu 0 4 137 135 26 25 + f 4 175 -175 -88 176 + mu 0 4 139 137 25 24 + f 4 177 -177 -85 178 + mu 0 4 141 139 24 23 + f 4 179 -179 -82 180 + mu 0 4 143 141 23 22 + f 4 181 -181 -79 182 + mu 0 4 145 143 22 21 + f 4 183 -183 -76 184 + mu 0 4 147 145 21 20 + f 4 185 -185 -73 186 + mu 0 4 149 147 20 19 + f 4 187 -187 -70 188 + mu 0 4 151 149 19 18 + f 4 189 -189 -67 190 + mu 0 4 153 151 18 17 + f 4 191 -191 -64 192 + mu 0 4 155 153 17 16 + f 4 193 -193 -61 194 + mu 0 4 157 155 16 15 + f 4 195 -195 -57 -170 + mu 0 4 159 157 15 14 + f 4 196 197 198 199 + mu 0 4 102 162 163 131 + f 4 200 201 202 -198 + mu 0 4 162 132 134 163 + f 4 -1 203 204 205 + mu 0 4 103 104 107 105 + f 4 -4 206 207 -204 + mu 0 4 104 106 109 107 + f 4 -6 208 209 -207 + mu 0 4 106 108 111 109 + f 4 -8 210 211 -209 + mu 0 4 108 110 113 111 + f 4 -10 212 213 -211 + mu 0 4 110 112 115 113 + f 4 -12 214 215 -213 + mu 0 4 112 114 117 115 + f 4 -14 216 217 -215 + mu 0 4 114 116 119 117 + f 4 -16 218 219 -217 + mu 0 4 116 118 121 119 + f 4 -18 220 221 -219 + mu 0 4 118 120 123 121 + f 4 -20 222 223 -221 + mu 0 4 120 122 125 123 + f 4 -22 224 225 -223 + mu 0 4 122 124 127 125 + f 4 -24 226 227 -225 + mu 0 4 124 126 129 127 + f 4 -26 228 229 -227 + mu 0 4 126 128 131 129 + f 4 -28 -206 -200 -229 + mu 0 4 128 130 102 131 + f 4 -202 230 -169 231 + mu 0 4 134 132 101 133 + f 4 232 -232 -172 233 + mu 0 4 136 134 133 135 + f 4 234 -234 -174 235 + mu 0 4 138 136 135 137 + f 4 236 -236 -176 237 + mu 0 4 140 138 137 139 + f 4 238 -238 -178 239 + mu 0 4 142 140 139 141 + f 4 240 -240 -180 241 + mu 0 4 144 142 141 143 + f 4 242 -242 -182 243 + mu 0 4 146 144 143 145 + f 4 244 -244 -184 245 + mu 0 4 148 146 145 147 + f 4 246 -246 -186 247 + mu 0 4 150 148 147 149 + f 4 248 -248 -188 249 + mu 0 4 152 150 149 151 + f 4 250 -250 -190 251 + mu 0 4 154 152 151 153 + f 4 252 -252 -192 253 + mu 0 4 156 154 153 155 + f 4 254 -254 -194 255 + mu 0 4 158 156 155 157 + f 4 256 -256 -196 -231 + mu 0 4 160 158 157 159 + f 4 -199 257 258 -230 + mu 0 4 131 163 164 129 + f 4 -203 -233 259 -258 + mu 0 4 163 134 136 164 + f 4 -259 260 261 -228 + mu 0 4 129 164 165 127 + f 4 -260 -235 262 -261 + mu 0 4 164 136 138 165 + f 4 -262 263 264 -226 + mu 0 4 127 165 166 125 + f 4 -263 -237 265 -264 + mu 0 4 165 138 140 166 + f 4 -265 266 267 -224 + mu 0 4 125 166 167 123 + f 4 -266 -239 268 -267 + mu 0 4 166 140 142 167 + f 4 -268 269 270 -222 + mu 0 4 123 167 168 121 + f 4 -269 -241 271 -270 + mu 0 4 167 142 144 168 + f 4 -271 272 273 -220 + mu 0 4 121 168 169 119 + f 4 -272 -243 274 -273 + mu 0 4 168 144 146 169 + f 4 -274 275 276 -218 + mu 0 4 119 169 170 117 + f 4 -275 -245 277 -276 + mu 0 4 169 146 148 170 + f 4 -277 278 279 -216 + mu 0 4 117 170 171 115 + f 4 -278 -247 280 -279 + mu 0 4 170 148 150 171 + f 4 -280 281 282 -214 + mu 0 4 115 171 172 113 + f 4 -281 -249 283 -282 + mu 0 4 171 150 152 172 + f 4 -283 284 285 -212 + mu 0 4 113 172 173 111 + f 4 -284 -251 286 -285 + mu 0 4 172 152 154 173 + f 4 -286 287 288 -210 + mu 0 4 111 173 174 109 + f 4 -287 -253 289 -288 + mu 0 4 173 154 156 174 + f 4 -289 290 291 -208 + mu 0 4 109 174 175 107 + f 4 -290 -255 292 -291 + mu 0 4 174 156 158 175 + f 4 -201 293 -293 -257 + mu 0 4 160 161 175 158 + f 4 -197 -205 -292 -294 + mu 0 4 161 105 107 175; + setAttr ".cd" -type "dataPolyComponent" Index_Data Edge 0 ; + setAttr ".cvd" -type "dataPolyComponent" Index_Data Vertex 0 ; + setAttr ".pd[0]" -type "dataPolyComponent" Index_Data UV 0 ; + setAttr ".hfd" -type "dataPolyComponent" Index_Data Face 0 ; +createNode lightLinker -s -n "lightLinker1"; + rename -uid "6B56E0E5-4657-8E06-19C3-85834B5E8DF1"; + setAttr -s 4 ".lnk"; + setAttr -s 4 ".slnk"; +createNode displayLayerManager -n "layerManager"; + rename -uid "7CD425F8-4369-57B3-8CBA-7AA4DAF0061A"; +createNode displayLayer -n "defaultLayer"; + rename -uid "A42B7431-4CE5-7A79-DFD0-B5B84DAAE9B9"; + setAttr ".ufem" -type "stringArray" 0 ; +createNode renderLayerManager -n "renderLayerManager"; + rename -uid "EC79ED0D-46E5-C32B-9D84-BF8A611E14CE"; +createNode renderLayer -n "defaultRenderLayer"; + rename -uid "C4CEC8DD-4104-9D54-A12B-32B134D664D1"; + setAttr ".g" yes; +createNode shapeEditorManager -n "shapeEditorManager"; + rename -uid "88FDEBA4-48FC-8121-0F77-7B80F72BF1F5"; +createNode poseInterpolatorManager -n "poseInterpolatorManager"; + rename -uid "823144B8-4ACA-7C9A-21B1-6EB88559CDB7"; +createNode aiOptions -s -n "defaultArnoldRenderOptions"; + rename -uid "F70913AA-4FC8-0122-13C3-299EE1ED2BC3"; + setAttr ".version" -type "string" "5.2.3"; +createNode aiAOVFilter -s -n "defaultArnoldFilter"; + rename -uid "1A48D8B4-4401-7986-6BAA-279A9601B8EC"; + setAttr ".ai_translator" -type "string" "gaussian"; +createNode aiAOVDriver -s -n "defaultArnoldDriver"; + rename -uid "FFF37E91-43E5-5032-1783-828E3FF7B4B8"; + setAttr ".ai_translator" -type "string" "exr"; +createNode aiAOVDriver -s -n "defaultArnoldDisplayDriver"; + rename -uid "77FB48E7-4804-3642-DA7A-9BA1179F34DD"; + setAttr ".ai_translator" -type "string" "maya"; + setAttr ".output_mode" 0; +createNode materialInfo -n "testGeo_normals:materialInfo104"; + rename -uid "845031F7-4269-4A67-8736-E59D0E547CD8"; +createNode shadingEngine -n "testGeo_normals:standardSurface5SG"; + rename -uid "0A6FB453-459B-3B7E-6EE9-E194557E7E5B"; + addAttr -ci true -h true -sn "aal" -ln "attributeAliasList" -dt "attributeAlias"; + setAttr ".ihi" 0; + setAttr ".ro" yes; + setAttr ".aovs[0].aov_name" -type "string" "N"; + setAttr ".aal" -type "attributeAlias" 2 "ai_aov_N" "aiCustomAOVs[0]" ; +createNode standardSurface -n "testGeo_normals:testShader"; + rename -uid "84589A09-4917-8B5D-813A-59916F502ED3"; + setAttr ".bc" -type "float3" 1 1 1 ; + setAttr ".sc" -type "float3" 0.91666669 0.91666669 0.91666669 ; + setAttr ".sr" 0.39102563261985779; +createNode standardSurface -n "standardSurface2"; + rename -uid "7D11ECD9-43CA-B06C-556E-10A63122AFF8"; +createNode shadingEngine -n "standardSurface2SG"; + rename -uid "4D07A0DF-4397-D615-F4A6-DFBD91B7ED48"; + setAttr ".ihi" 0; + setAttr ".ro" yes; +createNode materialInfo -n "materialInfo1"; + rename -uid "65656C4F-4FEB-B85F-C3B8-A99E1D8B63F6"; +createNode script -n "uiConfigurationScriptNode"; + rename -uid "6D2A8D31-45DB-F0C3-5548-9DB10A378052"; + setAttr ".b" -type "string" ( + "// Maya Mel UI Configuration File.\n//\n// This script is machine generated. Edit at your own risk.\n//\n//\n\nglobal string $gMainPane;\nif (`paneLayout -exists $gMainPane`) {\n\n\tglobal int $gUseScenePanelConfig;\n\tint $useSceneConfig = $gUseScenePanelConfig;\n\tint $nodeEditorPanelVisible = stringArrayContains(\"nodeEditorPanel1\", `getPanel -vis`);\n\tint $nodeEditorWorkspaceControlOpen = (`workspaceControl -exists nodeEditorPanel1Window` && `workspaceControl -q -visible nodeEditorPanel1Window`);\n\tint $menusOkayInPanels = `optionVar -q allowMenusInPanels`;\n\tint $nVisPanes = `paneLayout -q -nvp $gMainPane`;\n\tint $nPanes = 0;\n\tstring $editorName;\n\tstring $panelName;\n\tstring $itemFilterName;\n\tstring $panelConfig;\n\n\t//\n\t// get current state of the UI\n\t//\n\tsceneUIReplacement -update $gMainPane;\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Top View\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Top View\")) -mbv $menusOkayInPanels $panelName;\n" + + "\t\t$editorName = $panelName;\n modelEditor -e \n -docTag \"RADRENDER\" \n -camera \"|top\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 32768\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n" + + " -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"vp2Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -controllers 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n" + + " -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -bluePencil 1\n -greasePencils 0\n -excludeObjectPreset \"All\" \n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n" + + " $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Side View\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Side View\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n modelEditor -e \n -docTag \"RADRENDER\" \n -camera \"|side\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n" + + " -lineWidth 1\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 32768\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"vp2Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n" + + " -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -controllers 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -bluePencil 1\n" + + " -greasePencils 0\n -excludeObjectPreset \"All\" \n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Front View\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Front View\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n modelEditor -e \n -docTag \"RADRENDER\" \n -camera \"|front\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n" + + " -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 32768\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"vp2Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n" + + " -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -controllers 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n" + + " -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -bluePencil 1\n -greasePencils 0\n -excludeObjectPreset \"All\" \n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Persp View\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Persp View\")) -mbv $menusOkayInPanels $panelName;\n" + + "\t\t$editorName = $panelName;\n modelEditor -e \n -docTag \"RADRENDER\" \n -camera \"|persp\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 32768\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n" + + " -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"vp2Renderer\" \n -rendererOverrideName \"mayaHydraRenderOverride_HdStormRendererPlugin\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -controllers 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n" + + " -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -bluePencil 1\n -greasePencils 0\n -excludeObjectPreset \"All\" \n -shadows 0\n -captureSequenceNumber -1\n -width 1116\n -height 713\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n" + + " modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"outlinerPanel\" (localizedPanelLabel(\"\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\toutlinerPanel -edit -l (localizedPanelLabel(\"\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n outlinerEditor -e \n -docTag \"isolOutln_fromSeln\" \n -showShapes 0\n -showAssignedMaterials 0\n -showTimeEditor 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 0\n -showConnected 0\n -showAnimCurvesOnly 0\n -showMuteInfo 0\n -organizeByLayer 1\n -organizeByClip 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 0\n -showDagOnly 1\n -showAssets 1\n -showContainedOnly 1\n" + + " -showPublishedAsConnected 0\n -showParentContainers 0\n -showContainerContents 1\n -ignoreDagHierarchy 0\n -expandConnections 0\n -showUpstreamCurves 1\n -showUnitlessCurves 1\n -showCompounds 1\n -showLeafs 1\n -showNumericAttrsOnly 0\n -highlightActive 1\n -autoSelectNewObjects 0\n -doNotSelectNewObjects 0\n -dropIsParent 1\n -transmitFilters 0\n -setFilter \"defaultSetFilter\" \n -showSetMembers 1\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -isSet 0\n -isSetMember 0\n -showUfeItems 1\n -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n" + + " -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -selectCommand \"print(\\\"\\\")\" \n -showNamespace 1\n -showPinIcons 0\n -mapMotionTrails 0\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n -renderFilterVisible 0\n -renderFilterIndex 0\n -selectionOrder \"chronological\" \n -expandAttribute 0\n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"outlinerPanel\" (localizedPanelLabel(\"Outliner\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\toutlinerPanel -edit -l (localizedPanelLabel(\"Outliner\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n outlinerEditor -e \n -docTag \"isolOutln_fromSeln\" \n -showShapes 0\n -showAssignedMaterials 0\n" + + " -showTimeEditor 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 0\n -showConnected 0\n -showAnimCurvesOnly 0\n -showMuteInfo 0\n -organizeByLayer 1\n -organizeByClip 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 0\n -showDagOnly 1\n -showAssets 1\n -showContainedOnly 1\n -showPublishedAsConnected 0\n -showParentContainers 0\n -showContainerContents 1\n -ignoreDagHierarchy 0\n -expandConnections 0\n -showUpstreamCurves 1\n -showUnitlessCurves 1\n -showCompounds 1\n -showLeafs 1\n -showNumericAttrsOnly 0\n -highlightActive 1\n -autoSelectNewObjects 0\n -doNotSelectNewObjects 0\n -dropIsParent 1\n -transmitFilters 0\n -setFilter \"defaultSetFilter\" \n -showSetMembers 1\n" + + " -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -showUfeItems 1\n -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 0\n -mapMotionTrails 0\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n -renderFilterVisible 0\n -ufeFilter \"USD\" \"InactivePrims\" -ufeFilterValue 1\n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"graphEditor\" (localizedPanelLabel(\"Graph Editor\")) `;\n" + + "\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Graph Editor\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = ($panelName+\"OutlineEd\");\n outlinerEditor -e \n -showShapes 1\n -showAssignedMaterials 0\n -showTimeEditor 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 1\n -showConnected 1\n -showAnimCurvesOnly 1\n -showMuteInfo 0\n -organizeByLayer 1\n -organizeByClip 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 1\n -showDagOnly 0\n -showAssets 1\n -showContainedOnly 0\n -showPublishedAsConnected 0\n -showParentContainers 0\n -showContainerContents 0\n -ignoreDagHierarchy 0\n -expandConnections 1\n" + + " -showUpstreamCurves 1\n -showUnitlessCurves 1\n -showCompounds 0\n -showLeafs 1\n -showNumericAttrsOnly 1\n -highlightActive 0\n -autoSelectNewObjects 1\n -doNotSelectNewObjects 0\n -dropIsParent 1\n -transmitFilters 1\n -setFilter \"0\" \n -showSetMembers 0\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -showUfeItems 1\n -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n" + + " -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 1\n -mapMotionTrails 1\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n -renderFilterVisible 0\n $editorName;\n\n\t\t\t$editorName = ($panelName+\"GraphEd\");\n animCurveEditor -e \n -displayValues 0\n -snapTime \"integer\" \n -snapValue \"none\" \n -showPlayRangeShades \"on\" \n -lockPlayRangeShades \"off\" \n -smoothness \"fine\" \n -resultSamples 1\n -resultScreenSamples 0\n -resultUpdate \"delayed\" \n -showUpstreamCurves 1\n -keyMinScale 1\n -stackedCurvesMin -1\n -stackedCurvesMax 1\n -stackedCurvesSpace 0.2\n -preSelectionHighlight 0\n -limitToSelectedCurves 0\n -constrainDrag 0\n -valueLinesToggle 0\n" + + " -outliner \"graphEditor1OutlineEd\" \n -highlightAffectedCurves 0\n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"dopeSheetPanel\" (localizedPanelLabel(\"Dope Sheet\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Dope Sheet\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = ($panelName+\"OutlineEd\");\n outlinerEditor -e \n -showShapes 1\n -showAssignedMaterials 0\n -showTimeEditor 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 1\n -showConnected 1\n -showAnimCurvesOnly 1\n -showMuteInfo 0\n -organizeByLayer 1\n -organizeByClip 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 1\n" + + " -showDagOnly 0\n -showAssets 1\n -showContainedOnly 0\n -showPublishedAsConnected 0\n -showParentContainers 0\n -showContainerContents 0\n -ignoreDagHierarchy 0\n -expandConnections 1\n -showUpstreamCurves 1\n -showUnitlessCurves 0\n -showCompounds 0\n -showLeafs 1\n -showNumericAttrsOnly 1\n -highlightActive 0\n -autoSelectNewObjects 0\n -doNotSelectNewObjects 1\n -dropIsParent 1\n -transmitFilters 0\n -setFilter \"0\" \n -showSetMembers 0\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -showUfeItems 1\n -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n" + + " -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 0\n -mapMotionTrails 1\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n -renderFilterVisible 0\n $editorName;\n\n\t\t\t$editorName = ($panelName+\"DopeSheetEd\");\n dopeSheetEditor -e \n -displayValues 0\n -snapTime \"none\" \n -snapValue \"none\" \n -outliner \"dopeSheetPanel1OutlineEd\" \n -hierarchyBelow 0\n -selectionWindow 0 0 0 0 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"timeEditorPanel\" (localizedPanelLabel(\"Time Editor\")) `;\n" + + "\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Time Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"clipEditorPanel\" (localizedPanelLabel(\"Trax Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Trax Editor\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = clipEditorNameFromPanel($panelName);\n clipEditor -e \n -displayValues 0\n -snapTime \"none\" \n -snapValue \"none\" \n -initialized 0\n -manageSequencer 0 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"sequenceEditorPanel\" (localizedPanelLabel(\"Camera Sequencer\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n" + + "\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Camera Sequencer\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = sequenceEditorNameFromPanel($panelName);\n clipEditor -e \n -displayValues 0\n -snapTime \"none\" \n -snapValue \"none\" \n -initialized 0\n -manageSequencer 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"hyperGraphPanel\" (localizedPanelLabel(\"Hypergraph Hierarchy\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Hypergraph Hierarchy\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = ($panelName+\"HyperGraphEd\");\n hyperGraph -e \n -graphLayoutStyle \"hierarchicalLayout\" \n -orientation \"horiz\" \n -mergeConnections 0\n -zoom 1\n -animateTransition 0\n -showRelationships 1\n" + + " -showShapes 0\n -showDeformers 0\n -showExpressions 0\n -showConstraints 0\n -showConnectionFromSelected 0\n -showConnectionToSelected 0\n -showConstraintLabels 0\n -showUnderworld 0\n -showInvisible 0\n -transitionFrames 1\n -opaqueContainers 0\n -freeform 0\n -imagePosition 0 0 \n -imageScale 1\n -imageEnabled 0\n -graphType \"DAG\" \n -heatMapDisplay 0\n -updateSelection 1\n -updateNodeAdded 1\n -useDrawOverrideColor 0\n -limitGraphTraversal -1\n -range 0 0 \n -iconSize \"smallIcons\" \n -showCachedConnections 0\n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"hyperShadePanel\" (localizedPanelLabel(\"Hypershade\")) `;\n" + + "\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Hypershade\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"visorPanel\" (localizedPanelLabel(\"Visor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Visor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"nodeEditorPanel\" (localizedPanelLabel(\"Node Editor\")) `;\n\tif ($nodeEditorPanelVisible || $nodeEditorWorkspaceControlOpen) {\n\t\tif (\"\" == $panelName) {\n\t\t\tif ($useSceneConfig) {\n\t\t\t\t$panelName = `scriptedPanel -unParent -type \"nodeEditorPanel\" -l (localizedPanelLabel(\"Node Editor\")) -mbv $menusOkayInPanels `;\n\n\t\t\t$editorName = ($panelName+\"NodeEditorEd\");\n nodeEditor -e \n -allAttributes 0\n" + + " -allNodes 0\n -autoSizeNodes 1\n -consistentNameSize 1\n -createNodeCommand \"nodeEdCreateNodeCommand\" \n -connectNodeOnCreation 0\n -connectOnDrop 0\n -copyConnectionsOnPaste 0\n -connectionStyle \"bezier\" \n -defaultPinnedState 0\n -additiveGraphingMode 0\n -connectedGraphingMode 1\n -settingsChangedCallback \"nodeEdSyncControls\" \n -traversalDepthLimit -1\n -keyPressCommand \"nodeEdKeyPressCommand\" \n -nodeTitleMode \"name\" \n -gridSnap 0\n -gridVisibility 1\n -crosshairOnEdgeDragging 0\n -popupMenuScript \"nodeEdBuildPanelMenus\" \n -showNamespace 1\n -showShapes 1\n -showSGShapes 0\n -showTransforms 1\n -useAssets 1\n -syncedSelection 1\n -extendToShapes 1\n" + + " -showUnitConversions 0\n -editorMode \"default\" \n -hasWatchpoint 0\n $editorName;\n\t\t\t}\n\t\t} else {\n\t\t\t$label = `panel -q -label $panelName`;\n\t\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Node Editor\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = ($panelName+\"NodeEditorEd\");\n nodeEditor -e \n -allAttributes 0\n -allNodes 0\n -autoSizeNodes 1\n -consistentNameSize 1\n -createNodeCommand \"nodeEdCreateNodeCommand\" \n -connectNodeOnCreation 0\n -connectOnDrop 0\n -copyConnectionsOnPaste 0\n -connectionStyle \"bezier\" \n -defaultPinnedState 0\n -additiveGraphingMode 0\n -connectedGraphingMode 1\n -settingsChangedCallback \"nodeEdSyncControls\" \n -traversalDepthLimit -1\n -keyPressCommand \"nodeEdKeyPressCommand\" \n -nodeTitleMode \"name\" \n" + + " -gridSnap 0\n -gridVisibility 1\n -crosshairOnEdgeDragging 0\n -popupMenuScript \"nodeEdBuildPanelMenus\" \n -showNamespace 1\n -showShapes 1\n -showSGShapes 0\n -showTransforms 1\n -useAssets 1\n -syncedSelection 1\n -extendToShapes 1\n -showUnitConversions 0\n -editorMode \"default\" \n -hasWatchpoint 0\n $editorName;\n\t\t\tif (!$useSceneConfig) {\n\t\t\t\tpanel -e -l $label $panelName;\n\t\t\t}\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"createNodePanel\" (localizedPanelLabel(\"Create Node\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Create Node\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"polyTexturePlacementPanel\" (localizedPanelLabel(\"UV Editor\")) `;\n" + + "\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"UV Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"renderWindowPanel\" (localizedPanelLabel(\"Render View\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Render View\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"shapePanel\" (localizedPanelLabel(\"Shape Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tshapePanel -edit -l (localizedPanelLabel(\"Shape Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"posePanel\" (localizedPanelLabel(\"Pose Editor\")) `;\n\tif (\"\" != $panelName) {\n" + + "\t\t$label = `panel -q -label $panelName`;\n\t\tposePanel -edit -l (localizedPanelLabel(\"Pose Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"dynRelEdPanel\" (localizedPanelLabel(\"Dynamic Relationships\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Dynamic Relationships\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"relationshipPanel\" (localizedPanelLabel(\"Relationship Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Relationship Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"referenceEditorPanel\" (localizedPanelLabel(\"Reference Editor\")) `;\n" + + "\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Reference Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"dynPaintScriptedPanelType\" (localizedPanelLabel(\"Paint Effects\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Paint Effects\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"scriptEditorPanel\" (localizedPanelLabel(\"Script Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Script Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"profilerPanel\" (localizedPanelLabel(\"Profiler Tool\")) `;\n" + + "\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Profiler Tool\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"contentBrowserPanel\" (localizedPanelLabel(\"Content Browser\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Content Browser\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"Stereo\" (localizedPanelLabel(\"Stereo\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Stereo\")) -mbv $menusOkayInPanels $panelName;\n{ string $editorName = ($panelName+\"Editor\");\n stereoCameraView -e \n -editorChanged \"updateModelPanelBar\" \n -camera \"|persp\" \n -useInteractiveMode 0\n" + + " -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 32768\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n" + + " -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererOverrideName \"stereoOverrideVP2\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 4 4 \n -bumpResolution 4 4 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 0\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -controllers 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n" + + " -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -bluePencil 1\n -greasePencils 0\n -excludeObjectPreset \"All\" \n -shadows 0\n -captureSequenceNumber -1\n -width 0\n" + + " -height 0\n -sceneRenderFilter 0\n -displayMode \"centerEye\" \n -viewColor 0 0 0 1 \n -useCustomBackground 1\n $editorName;\n stereoCameraView -e -viewSelected 0 $editorName;\n stereoCameraView -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName; };\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"outlinerPanel\" (localizedPanelLabel(\"ToggledOutliner\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\toutlinerPanel -edit -l (localizedPanelLabel(\"ToggledOutliner\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n outlinerEditor -e \n -showShapes 0\n -showAssignedMaterials 0\n -showTimeEditor 1\n -showReferenceNodes 1\n -showReferenceMembers 1\n -showAttributes 0\n -showConnected 0\n -showAnimCurvesOnly 0\n" + + " -showMuteInfo 0\n -organizeByLayer 1\n -organizeByClip 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 0\n -showDagOnly 1\n -showAssets 1\n -showContainedOnly 1\n -showPublishedAsConnected 0\n -showParentContainers 0\n -showContainerContents 1\n -ignoreDagHierarchy 0\n -expandConnections 0\n -showUpstreamCurves 1\n -showUnitlessCurves 1\n -showCompounds 1\n -showLeafs 1\n -showNumericAttrsOnly 0\n -highlightActive 1\n -autoSelectNewObjects 0\n -doNotSelectNewObjects 0\n -dropIsParent 1\n -transmitFilters 0\n -setFilter \"defaultSetFilter\" \n -showSetMembers 1\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -isSet 0\n -isSetMember 0\n -showUfeItems 1\n -displayMode \"DAG\" \n" + + " -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 0\n -mapMotionTrails 0\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n -renderFilterVisible 0\n -renderFilterIndex 0\n -selectionOrder \"chronological\" \n -expandAttribute 0\n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\tif ($useSceneConfig) {\n string $configName = `getPanel -cwl (localizedPanelLabel(\"Current Layout\"))`;\n if (\"\" != $configName) {\n\t\t\tpanelConfiguration -edit -label (localizedPanelLabel(\"Current Layout\")) \n" + + "\t\t\t\t-userCreated false\n\t\t\t\t-defaultImage \"vacantCell.xP:/\"\n\t\t\t\t-image \"\"\n\t\t\t\t-sc false\n\t\t\t\t-configString \"global string $gMainPane; paneLayout -e -cn \\\"single\\\" -ps 1 100 100 $gMainPane;\"\n\t\t\t\t-removeAllPanels\n\t\t\t\t-ap false\n\t\t\t\t\t(localizedPanelLabel(\"Persp View\")) \n\t\t\t\t\t\"modelPanel\"\n" + + "\t\t\t\t\t\"$panelName = `modelPanel -unParent -l (localizedPanelLabel(\\\"Persp View\\\")) -mbv $menusOkayInPanels `;\\n$editorName = $panelName;\\nmodelEditor -e \\n -docTag \\\"RADRENDER\\\" \\n -cam `findStartUpCamera persp` \\n -useInteractiveMode 0\\n -displayLights \\\"default\\\" \\n -displayAppearance \\\"smoothShaded\\\" \\n -activeOnly 0\\n -ignorePanZoom 0\\n -wireframeOnShaded 0\\n -headsUpDisplay 1\\n -holdOuts 1\\n -selectionHiliteDisplay 1\\n -useDefaultMaterial 0\\n -bufferMode \\\"double\\\" \\n -twoSidedLighting 0\\n -backfaceCulling 0\\n -xray 0\\n -jointXray 0\\n -activeComponentsXray 0\\n -displayTextures 0\\n -smoothWireframe 0\\n -lineWidth 1\\n -textureAnisotropic 0\\n -textureHilight 1\\n -textureSampling 2\\n -textureDisplay \\\"modulate\\\" \\n -textureMaxSize 32768\\n -fogging 0\\n -fogSource \\\"fragment\\\" \\n -fogMode \\\"linear\\\" \\n -fogStart 0\\n -fogEnd 100\\n -fogDensity 0.1\\n -fogColor 0.5 0.5 0.5 1 \\n -depthOfFieldPreview 1\\n -maxConstantTransparency 1\\n -rendererName \\\"vp2Renderer\\\" \\n -rendererOverrideName \\\"mayaHydraRenderOverride_HdStormRendererPlugin\\\" \\n -objectFilterShowInHUD 1\\n -isFiltered 0\\n -colorResolution 256 256 \\n -bumpResolution 512 512 \\n -textureCompression 0\\n -transparencyAlgorithm \\\"frontAndBackCull\\\" \\n -transpInShadows 0\\n -cullingOverride \\\"none\\\" \\n -lowQualityLighting 0\\n -maximumNumHardwareLights 1\\n -occlusionCulling 0\\n -shadingModel 0\\n -useBaseRenderer 0\\n -useReducedRenderer 0\\n -smallObjectCulling 0\\n -smallObjectThreshold -1 \\n -interactiveDisableShadows 0\\n -interactiveBackFaceCull 0\\n -sortTransparent 1\\n -controllers 1\\n -nurbsCurves 1\\n -nurbsSurfaces 1\\n -polymeshes 1\\n -subdivSurfaces 1\\n -planes 1\\n -lights 1\\n -cameras 1\\n -controlVertices 1\\n -hulls 1\\n -grid 1\\n -imagePlane 1\\n -joints 1\\n -ikHandles 1\\n -deformers 1\\n -dynamics 1\\n -particleInstancers 1\\n -fluids 1\\n -hairSystems 1\\n -follicles 1\\n -nCloths 1\\n -nParticles 1\\n -nRigids 1\\n -dynamicConstraints 1\\n -locators 1\\n -manipulators 1\\n -pluginShapes 1\\n -dimensions 1\\n -handles 1\\n -pivots 1\\n -textures 1\\n -strokes 1\\n -motionTrails 1\\n -clipGhosts 1\\n -bluePencil 1\\n -greasePencils 0\\n -excludeObjectPreset \\\"All\\\" \\n -shadows 0\\n -captureSequenceNumber -1\\n -width 1116\\n -height 713\\n -sceneRenderFilter 0\\n $editorName;\\nmodelEditor -e -viewSelected 0 $editorName;\\nmodelEditor -e \\n -pluginObjects \\\"gpuCacheDisplayFilter\\\" 1 \\n $editorName\"\n" + + "\t\t\t\t\t\"modelPanel -edit -l (localizedPanelLabel(\\\"Persp View\\\")) -mbv $menusOkayInPanels $panelName;\\n$editorName = $panelName;\\nmodelEditor -e \\n -docTag \\\"RADRENDER\\\" \\n -cam `findStartUpCamera persp` \\n -useInteractiveMode 0\\n -displayLights \\\"default\\\" \\n -displayAppearance \\\"smoothShaded\\\" \\n -activeOnly 0\\n -ignorePanZoom 0\\n -wireframeOnShaded 0\\n -headsUpDisplay 1\\n -holdOuts 1\\n -selectionHiliteDisplay 1\\n -useDefaultMaterial 0\\n -bufferMode \\\"double\\\" \\n -twoSidedLighting 0\\n -backfaceCulling 0\\n -xray 0\\n -jointXray 0\\n -activeComponentsXray 0\\n -displayTextures 0\\n -smoothWireframe 0\\n -lineWidth 1\\n -textureAnisotropic 0\\n -textureHilight 1\\n -textureSampling 2\\n -textureDisplay \\\"modulate\\\" \\n -textureMaxSize 32768\\n -fogging 0\\n -fogSource \\\"fragment\\\" \\n -fogMode \\\"linear\\\" \\n -fogStart 0\\n -fogEnd 100\\n -fogDensity 0.1\\n -fogColor 0.5 0.5 0.5 1 \\n -depthOfFieldPreview 1\\n -maxConstantTransparency 1\\n -rendererName \\\"vp2Renderer\\\" \\n -rendererOverrideName \\\"mayaHydraRenderOverride_HdStormRendererPlugin\\\" \\n -objectFilterShowInHUD 1\\n -isFiltered 0\\n -colorResolution 256 256 \\n -bumpResolution 512 512 \\n -textureCompression 0\\n -transparencyAlgorithm \\\"frontAndBackCull\\\" \\n -transpInShadows 0\\n -cullingOverride \\\"none\\\" \\n -lowQualityLighting 0\\n -maximumNumHardwareLights 1\\n -occlusionCulling 0\\n -shadingModel 0\\n -useBaseRenderer 0\\n -useReducedRenderer 0\\n -smallObjectCulling 0\\n -smallObjectThreshold -1 \\n -interactiveDisableShadows 0\\n -interactiveBackFaceCull 0\\n -sortTransparent 1\\n -controllers 1\\n -nurbsCurves 1\\n -nurbsSurfaces 1\\n -polymeshes 1\\n -subdivSurfaces 1\\n -planes 1\\n -lights 1\\n -cameras 1\\n -controlVertices 1\\n -hulls 1\\n -grid 1\\n -imagePlane 1\\n -joints 1\\n -ikHandles 1\\n -deformers 1\\n -dynamics 1\\n -particleInstancers 1\\n -fluids 1\\n -hairSystems 1\\n -follicles 1\\n -nCloths 1\\n -nParticles 1\\n -nRigids 1\\n -dynamicConstraints 1\\n -locators 1\\n -manipulators 1\\n -pluginShapes 1\\n -dimensions 1\\n -handles 1\\n -pivots 1\\n -textures 1\\n -strokes 1\\n -motionTrails 1\\n -clipGhosts 1\\n -bluePencil 1\\n -greasePencils 0\\n -excludeObjectPreset \\\"All\\\" \\n -shadows 0\\n -captureSequenceNumber -1\\n -width 1116\\n -height 713\\n -sceneRenderFilter 0\\n $editorName;\\nmodelEditor -e -viewSelected 0 $editorName;\\nmodelEditor -e \\n -pluginObjects \\\"gpuCacheDisplayFilter\\\" 1 \\n $editorName\"\n" + + "\t\t\t\t$configName;\n\n setNamedPanelLayout (localizedPanelLabel(\"Current Layout\"));\n }\n\n panelHistory -e -clear mainPanelHistory;\n sceneUIReplacement -clear;\n\t}\n\n\ngrid -spacing 5 -size 12 -divisions 5 -displayAxes yes -displayGridLines yes -displayDivisionLines yes -displayPerspectiveLabels no -displayOrthographicLabels no -displayAxesBold yes -perspectiveLabelPosition axis -orthographicLabelPosition edge;\nviewManip -drawCompass 0 -compassAngle 0 -frontParameters \"\" -homeParameters \"\" -selectionLockParameters \"\";\n}\n"); + setAttr ".st" 3; +createNode script -n "sceneConfigurationScriptNode"; + rename -uid "A7C28266-4621-FA5F-029E-0FAEE0C712C4"; + setAttr ".b" -type "string" "playbackOptions -min 1 -max 114 -ast 1 -aet 360 "; + setAttr ".st" 6; +createNode mayaUsdLayerManager -n "mayaUsdLayerManager1"; + rename -uid "C09FB69E-4FA1-3753-5F74-B08F316E07FC"; +select -ne :time1; + setAttr -av -k on ".cch"; + setAttr -av -cb on ".ihi"; + setAttr -av -k on ".nds"; + setAttr -cb on ".bnm"; + setAttr ".o" 1; + setAttr -av ".unw" 1; + setAttr -av -k on ".etw"; + setAttr -av -k on ".tps"; + setAttr -av -k on ".tms"; +select -ne :hardwareRenderingGlobals; + setAttr -k on ".ihi"; + setAttr ".otfna" -type "stringArray" 22 "NURBS Curves" "NURBS Surfaces" "Polygons" "Subdiv Surface" "Particles" "Particle Instance" "Fluids" "Strokes" "Image Planes" "UI" "Lights" "Cameras" "Locators" "Joints" "IK Handles" "Deformers" "Motion Trails" "Components" "Hair Systems" "Follicles" "Misc. UI" "Ornaments" ; + setAttr ".otfva" -type "Int32Array" 22 0 1 1 1 1 1 + 1 1 1 0 0 0 0 0 0 0 0 0 + 0 0 0 0 ; + setAttr -av ".ta"; + setAttr -av ".tq"; + setAttr -av ".etmr"; + setAttr -av ".tmr"; + setAttr -av ".aoon"; + setAttr -av ".aoam"; + setAttr -av ".aora"; + setAttr -av ".hfs"; + setAttr -av ".hfe"; + setAttr -av ".hfc"; + setAttr -av ".hfa"; + setAttr -av ".mbe"; + setAttr -av -k on ".mbsof"; + setAttr -av ".msaa"; + setAttr ".fprt" yes; + setAttr ".rtfm" 1; +select -ne :renderPartition; + setAttr -av -k on ".cch"; + setAttr -cb on ".ihi"; + setAttr -av -k on ".nds"; + setAttr -cb on ".bnm"; + setAttr -s 4 ".st"; + setAttr -cb on ".an"; + setAttr -cb on ".pt"; +select -ne :renderGlobalsList1; + setAttr -k on ".cch"; + setAttr -cb on ".ihi"; + setAttr -k on ".nds"; + setAttr -cb on ".bnm"; +select -ne :defaultShaderList1; + setAttr -k on ".cch"; + setAttr -cb on ".ihi"; + setAttr -k on ".nds"; + setAttr -cb on ".bnm"; + setAttr -s 7 ".s"; +select -ne :postProcessList1; + setAttr -k on ".cch"; + setAttr -cb on ".ihi"; + setAttr -k on ".nds"; + setAttr -cb on ".bnm"; + setAttr -s 2 ".p"; +select -ne :defaultRenderingList1; + setAttr -k on ".ihi"; +select -ne :standardSurface1; + setAttr ".bc" -type "float3" 0.40000001 0.40000001 0.40000001 ; + setAttr ".sr" 0.5; +select -ne :initialShadingGroup; + setAttr -av -k on ".cch"; + setAttr -cb on ".ihi"; + setAttr -av -k on ".nds"; + setAttr -cb on ".bnm"; + setAttr -k on ".mwc"; + setAttr -cb on ".an"; + setAttr -cb on ".il"; + setAttr -cb on ".vo"; + setAttr -cb on ".eo"; + setAttr -cb on ".fo"; + setAttr -cb on ".epo"; + setAttr ".ro" yes; +select -ne :initialParticleSE; + setAttr -av -k on ".cch"; + setAttr -cb on ".ihi"; + setAttr -av -k on ".nds"; + setAttr -cb on ".bnm"; + setAttr -k on ".mwc"; + setAttr -cb on ".an"; + setAttr -cb on ".il"; + setAttr -cb on ".vo"; + setAttr -cb on ".eo"; + setAttr -cb on ".fo"; + setAttr -cb on ".epo"; + setAttr ".ro" yes; +select -ne :defaultRenderGlobals; + addAttr -ci true -sn "mtohMotionSampleStart" -ln "mtohMotionSampleStart" -at "float"; + addAttr -ci true -sn "mtohMotionSampleEnd" -ln "mtohMotionSampleEnd" -at "float"; + addAttr -ci true -sn "mtohTextureMemoryPerTexture" -ln "mtohTextureMemoryPerTexture" + -dv 4096 -min 1 -max 262144 -smn 16384 -at "long"; + addAttr -ci true -sn "mtohMaximumShadowMapResolution" -ln "mtohMaximumShadowMapResolution" + -dv 2048 -min 32 -max 8192 -at "long"; + addAttr -ci true -sn "HdStormRendererPlugin__enableTinyPrimCulling" -ln "HdStormRendererPlugin__enableTinyPrimCulling" + -min 0 -max 1 -at "bool"; + addAttr -ci true -sn "HdStormRendererPlugin__volumeRaymarchingStepSize" -ln "HdStormRendererPlugin__volumeRaymarchingStepSize" + -dv 1 -at "float"; + addAttr -ci true -sn "HdStormRendererPlugin__volumeRaymarchingStepSizeLighting" + -ln "HdStormRendererPlugin__volumeRaymarchingStepSizeLighting" -dv 10 -at "float"; + addAttr -ci true -sn "HdStormRendererPlugin__volumeMaxTextureMemoryPerField" -ln "HdStormRendererPlugin__volumeMaxTextureMemoryPerField" + -dv 128 -at "float"; + addAttr -ci true -sn "HdStormRendererPlugin__maxLights" -ln "HdStormRendererPlugin__maxLights" + -dv 16 -at "long"; + addAttr -ci true -h true -sn "dss" -ln "defaultSurfaceShader" -dt "string"; + addAttr -ci true -sn "mayaHydraRenderPurpose" -ln "mayaHydraRenderPurpose" -min + 0 -max 1 -at "bool"; + addAttr -ci true -sn "mayaHydraProxyPurpose" -ln "mayaHydraProxyPurpose" -dv 1 -min + 0 -max 1 -at "bool"; + addAttr -ci true -sn "mayaHydraGuidePurpose" -ln "mayaHydraGuidePurpose" -min 0 + -max 1 -at "bool"; + addAttr -ci true -sn "mayaHydraRefinementLevel" -ln "mayaHydraRefinementLevel" -min + 0 -max 8 -at "long"; + setAttr -k on ".cch"; + setAttr -k on ".ihi"; + setAttr -k on ".nds"; + setAttr -k on ".bnm"; + setAttr -k on ".macc"; + setAttr -k on ".macd"; + setAttr -k on ".macq"; + setAttr -k on ".mcfr"; + setAttr -k on ".ifg"; + setAttr -k on ".clip"; + setAttr -k on ".edm"; + setAttr -k on ".edl"; + setAttr ".ren" -type "string" "arnold"; + setAttr -av -k on ".esr"; + setAttr -k on ".ors"; + setAttr -k on ".sdf"; + setAttr -av ".outf"; + setAttr -k on ".gama"; + setAttr -k on ".an"; + setAttr -k on ".ar"; + setAttr -k on ".fs"; + setAttr -k on ".ef"; + setAttr -av -k on ".bfs"; + setAttr -k on ".me"; + setAttr -k on ".se"; + setAttr -k on ".be"; + setAttr -k on ".ep"; + setAttr -k on ".fec"; + setAttr -av -k on ".ofc"; + setAttr -k on ".ofe"; + setAttr -k on ".efe"; + setAttr -k on ".oft"; + setAttr -k on ".umfn"; + setAttr -k on ".ufe"; + setAttr -k on ".pff"; + setAttr -k on ".peie"; + setAttr -k on ".ifp"; + setAttr -k on ".rv"; + setAttr -k on ".comp"; + setAttr -k on ".cth"; + setAttr -k on ".soll"; + setAttr -cb on ".sosl"; + setAttr -k on ".rd"; + setAttr -k on ".lp"; + setAttr -av -k on ".sp"; + setAttr -k on ".shs"; + setAttr -av -k on ".lpr"; + setAttr -k on ".gv"; + setAttr -k on ".sv"; + setAttr -k on ".mm"; + setAttr -k on ".npu"; + setAttr -k on ".itf"; + setAttr -k on ".shp"; + setAttr -k on ".isp"; + setAttr -k on ".uf"; + setAttr -k on ".oi"; + setAttr -k on ".rut"; + setAttr -k on ".mot"; + setAttr -av -k on ".mb"; + setAttr -av -k on ".mbf"; + setAttr -k on ".mbso"; + setAttr -k on ".mbsc"; + setAttr -av -k on ".afp"; + setAttr -k on ".pfb"; + setAttr -k on ".pram"; + setAttr -k on ".poam"; + setAttr -k on ".prlm"; + setAttr -k on ".polm"; + setAttr -k on ".prm"; + setAttr -k on ".pom"; + setAttr -k on ".pfrm"; + setAttr -k on ".pfom"; + setAttr -av -k on ".bll"; + setAttr -av -k on ".bls"; + setAttr -av -k on ".smv"; + setAttr -k on ".ubc"; + setAttr -k on ".mbc"; + setAttr -k on ".mbt"; + setAttr -k on ".udbx"; + setAttr -k on ".smc"; + setAttr -k on ".kmv"; + setAttr -k on ".isl"; + setAttr -k on ".ism"; + setAttr -k on ".imb"; + setAttr -k on ".rlen"; + setAttr -av -k on ".frts"; + setAttr -k on ".tlwd"; + setAttr -k on ".tlht"; + setAttr -k on ".jfc"; + setAttr -k on ".rsb"; + setAttr -k on ".ope"; + setAttr -k on ".oppf"; + setAttr -k on ".rcp"; + setAttr -k on ".icp"; + setAttr -k on ".ocp"; + setAttr -k on ".hbl"; + setAttr ".dss" -type "string" "standardSurface1"; +select -ne :defaultResolution; + setAttr -av -k on ".cch"; + setAttr -av -k on ".ihi"; + setAttr -av -k on ".nds"; + setAttr -k on ".bnm"; + setAttr -av -k on ".w"; + setAttr -av -k on ".h"; + setAttr -av ".pa" 1; + setAttr -av -k on ".al"; + setAttr -av -k on ".dar"; + setAttr -av -k on ".ldar"; + setAttr -av -k on ".dpi"; + setAttr -av -k on ".off"; + setAttr -av -k on ".fld"; + setAttr -av -k on ".zsl"; + setAttr -av -k on ".isu"; + setAttr -av -k on ".pdu"; +select -ne :defaultColorMgtGlobals; + setAttr ".cfe" yes; + setAttr ".cfp" -type "string" "/OCIO-configs/Maya2022-default/config.ocio"; + setAttr ".vtn" -type "string" "ACES 1.0 SDR-video (sRGB)"; + setAttr ".vn" -type "string" "ACES 1.0 SDR-video"; + setAttr ".dn" -type "string" "sRGB"; + setAttr ".wsn" -type "string" "ACEScg"; + setAttr ".otn" -type "string" "ACES 1.0 SDR-video (sRGB)"; + setAttr ".potn" -type "string" "ACES 1.0 SDR-video (sRGB)"; +select -ne :hardwareRenderGlobals; + setAttr -k on ".cch"; + setAttr -cb on ".ihi"; + setAttr -k on ".nds"; + setAttr -cb on ".bnm"; + setAttr ".ctrs" 256; + setAttr -av ".btrs" 512; + setAttr -k off -cb on ".fbfm"; + setAttr -k off -cb on ".ehql"; + setAttr -k off -cb on ".eams"; + setAttr -k off -cb on ".eeaa"; + setAttr -k off -cb on ".engm"; + setAttr -k off -cb on ".mes"; + setAttr -k off -cb on ".emb"; + setAttr -av -k off -cb on ".mbbf"; + setAttr -k off -cb on ".mbs"; + setAttr -k off -cb on ".trm"; + setAttr -k off -cb on ".tshc"; + setAttr -k off -cb on ".enpt"; + setAttr -k off -cb on ".clmt"; + setAttr -k off -cb on ".tcov"; + setAttr -k off -cb on ".lith"; + setAttr -k off -cb on ".sobc"; + setAttr -k off -cb on ".cuth"; + setAttr -k off -cb on ".hgcd"; + setAttr -k off -cb on ".hgci"; + setAttr -k off -cb on ".mgcs"; + setAttr -k off -cb on ".twa"; + setAttr -k off -cb on ".twz"; + setAttr -cb on ".hwcc"; + setAttr -cb on ".hwdp"; + setAttr -cb on ".hwql"; + setAttr -k on ".hwfr"; + setAttr -k on ".soll"; + setAttr -k on ".sosl"; + setAttr -k on ".bswa"; + setAttr -k on ".shml"; + setAttr -k on ".hwel"; +relationship "link" ":lightLinker1" ":initialShadingGroup.message" ":defaultLightSet.message"; +relationship "link" ":lightLinker1" ":initialParticleSE.message" ":defaultLightSet.message"; +relationship "link" ":lightLinker1" "testGeo_normals:standardSurface5SG.message" ":defaultLightSet.message"; +relationship "link" ":lightLinker1" "standardSurface2SG.message" ":defaultLightSet.message"; +relationship "shadowLink" ":lightLinker1" ":initialShadingGroup.message" ":defaultLightSet.message"; +relationship "shadowLink" ":lightLinker1" ":initialParticleSE.message" ":defaultLightSet.message"; +relationship "shadowLink" ":lightLinker1" "testGeo_normals:standardSurface5SG.message" ":defaultLightSet.message"; +relationship "shadowLink" ":lightLinker1" "standardSurface2SG.message" ":defaultLightSet.message"; +connectAttr "layerManager.dli[0]" "defaultLayer.id"; +connectAttr "renderLayerManager.rlmi[0]" "defaultRenderLayer.rlid"; +connectAttr ":defaultArnoldDisplayDriver.msg" ":defaultArnoldRenderOptions.drivers" + -na; +connectAttr ":defaultArnoldFilter.msg" ":defaultArnoldRenderOptions.filt"; +connectAttr ":defaultArnoldDriver.msg" ":defaultArnoldRenderOptions.drvr"; +connectAttr "testGeo_normals:standardSurface5SG.msg" "testGeo_normals:materialInfo104.sg" + ; +connectAttr "testGeo_normals:testShader.msg" "testGeo_normals:materialInfo104.m" + ; +connectAttr "testGeo_normals:testShader.oc" "testGeo_normals:standardSurface5SG.ss" + ; +connectAttr "standardSurface2.oc" "standardSurface2SG.ss"; +connectAttr "testGeo_normals:originalShape.iog" "standardSurface2SG.dsm" -na; +connectAttr "standardSurface2SG.msg" "materialInfo1.sg"; +connectAttr "standardSurface2.msg" "materialInfo1.m"; +connectAttr "testGeo_normals:standardSurface5SG.pa" ":renderPartition.st" -na; +connectAttr "standardSurface2SG.pa" ":renderPartition.st" -na; +connectAttr "testGeo_normals:testShader.msg" ":defaultShaderList1.s" -na; +connectAttr "standardSurface2.msg" ":defaultShaderList1.s" -na; +connectAttr "defaultRenderLayer.msg" ":defaultRenderingList1.r" -na; +connectAttr "testGeo_normals_ABC:originalShape.iog" ":initialShadingGroup.dsm" -na + ; +// End of test_ImportedAssetsNormals.ma