/* * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or * its licensors. * * For complete copyright and license terms please see the LICENSE at the root of this * distribution (the "License"). All use of this software is governed by the License, * or, if provided, by the license below or the license accompanying this file. Do not * remove or modify any license notices. This file is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * */ #include // Needed for CGFContent.h #include #include #include #include #include #include #include #include #include #include namespace AZ { namespace RC { namespace SceneEvents = AZ::SceneAPI::Events; namespace SceneDataTypes = AZ::SceneAPI::DataTypes; ContainerSettingsExporter::ContainerSettingsExporter() { BindToCall(&ContainerSettingsExporter::ProcessContext); } void ContainerSettingsExporter::Reflect(ReflectContext* context) { SerializeContext* serializeContext = azrtti_cast(context); if (serializeContext) { serializeContext->Class()->Version(1); } } SceneEvents::ProcessingResult ContainerSettingsExporter::ProcessContext(ContainerExportContext& context) const { if (context.m_phase != Phase::Construction) { return SceneEvents::ProcessingResult::Ignored; } AZStd::shared_ptr advancedRule = context.m_group.GetRuleContainerConst().FindFirstByType(); if (advancedRule) { context.m_container.GetExportInfo()->bWantF32Vertices = advancedRule->Use32bitVertices(); context.m_container.GetExportInfo()->bMergeAllNodes = advancedRule->MergeMeshes(); context.m_container.GetExportInfo()->bUseCustomNormals = advancedRule->UseCustomNormals(); return SceneEvents::ProcessingResult::Success; } else { return SceneEvents::ProcessingResult::Ignored; } } } // RC } // AZ