diff options
| author | Anton Novoselov <[email protected]> | 2017-08-01 12:53:38 +0300 |
|---|---|---|
| committer | Anton Novoselov <[email protected]> | 2017-08-01 12:53:38 +0300 |
| commit | 236f03c0b9a4982328ed1201978f7f69d192d9b2 (patch) | |
| tree | e486f2fa39dba203563895541e92c60ed3e25759 /tools/ArtistTools/source/BlastPlugin/SampleBase/blast/BlastAssetModelSimple.cpp | |
| parent | Added screens to welcome page (diff) | |
| download | archived-blast-236f03c0b9a4982328ed1201978f7f69d192d9b2.tar.xz archived-blast-236f03c0b9a4982328ed1201978f7f69d192d9b2.zip | |
Blast 1.1 release (windows / linux)
see docs/release_notes.txt for details
Diffstat (limited to 'tools/ArtistTools/source/BlastPlugin/SampleBase/blast/BlastAssetModelSimple.cpp')
| -rw-r--r-- | tools/ArtistTools/source/BlastPlugin/SampleBase/blast/BlastAssetModelSimple.cpp | 74 |
1 files changed, 46 insertions, 28 deletions
diff --git a/tools/ArtistTools/source/BlastPlugin/SampleBase/blast/BlastAssetModelSimple.cpp b/tools/ArtistTools/source/BlastPlugin/SampleBase/blast/BlastAssetModelSimple.cpp index 56c7441..c3db31d 100644 --- a/tools/ArtistTools/source/BlastPlugin/SampleBase/blast/BlastAssetModelSimple.cpp +++ b/tools/ArtistTools/source/BlastPlugin/SampleBase/blast/BlastAssetModelSimple.cpp @@ -1,12 +1,29 @@ -/* -* Copyright (c) 2008-2015, NVIDIA CORPORATION. All rights reserved. -* -* NVIDIA CORPORATION and its licensors retain all intellectual property -* and proprietary rights in and to this software, related documentation -* and any modifications thereto. Any use, reproduction, disclosure or -* distribution of this software and related documentation without an express -* license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and related documentation and +// any modifications thereto. Any use, reproduction, disclosure, or +// distribution of this software and related documentation without an express +// license agreement from NVIDIA Corporation is strictly prohibited. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. #include "BlastAssetModelSimple.h" @@ -19,37 +36,38 @@ // BlastAssetModelSimple /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -BlastAssetModelSimple::BlastAssetModelSimple(TkFramework& framework, PxPhysics& physics, PxCooking& cooking, Renderer& renderer, const char* modelName) - : BlastAssetModel(framework, physics, cooking, renderer, modelName) +BlastAssetModelSimple::BlastAssetModelSimple(TkFramework& framework, PxPhysics& physics, PxCooking& cooking, ExtSerialization& serialization, Renderer& renderer, const char* modelName) + : BlastAssetModel(framework, physics, cooking, serialization, renderer, modelName) { - // prepare materials -// Add By Lixu Begin - for (const BlastModel::Material& material : getModel().materials) - { - if (material.diffuseTexture.empty()) - m_renderMaterials.push_back(RenderMaterial::getDefaultRenderMaterial()); - else - m_renderMaterials.push_back(new RenderMaterial(material.name.c_str(), renderer.getResourceManager(), "model_simple_textured_ex", material.diffuseTexture.c_str())); - } -// Add By Lixu End - validate(); + _init(renderer); } +BlastAssetModelSimple::BlastAssetModelSimple(ExtPxAsset* pExtPxAsset, BlastModel* pBlastModel, Renderer& renderer) + : BlastAssetModel(pExtPxAsset, pBlastModel, renderer) +{ + _init(renderer); +} BlastAssetModelSimple::~BlastAssetModelSimple() { - // release materials - for (RenderMaterial* r : m_renderMaterials) + m_renderMaterialNames.clear(); +} + +void BlastAssetModelSimple::_init(Renderer& renderer) +{ + for (const BlastModel::Material& material : getModel().materials) { - if (r == RenderMaterial::getDefaultRenderMaterial()) + std::string name = material.name; + if (name != "" && !BlastProject::ins().isGraphicsMaterialNameExist(name.c_str())) { - continue; + BlastProject::ins().addGraphicsMaterial(name.c_str()); + BlastProject::ins().reloadDiffuseTexture(name.c_str(), material.diffuseTexture.c_str()); + BlastProject::ins().reloadDiffuseColor(name.c_str(), material.r, material.g, material.b, material.a); } - SAFE_DELETE(r); + m_renderMaterialNames.push_back(name); } } - BlastFamilyPtr BlastAssetModelSimple::createFamily(PhysXController& physXConroller, ExtPxManager& pxManager, const ActorDesc& desc) { return BlastFamilyPtr(new BlastFamilyModelSimple(physXConroller, pxManager, m_renderer, *this, desc)); |