From 7115f60b91b5717d90f643fd692010905c7004db Mon Sep 17 00:00:00 2001 From: Bryan Galdrikian Date: Thu, 31 May 2018 11:36:08 -0700 Subject: Blast 1.1.3. See docs/release_notes.txt. --- samples/SampleAssetViewer/Main.cpp | 302 ++++++++++++++++++------------------- 1 file changed, 151 insertions(+), 151 deletions(-) mode change 100644 => 100755 samples/SampleAssetViewer/Main.cpp (limited to 'samples/SampleAssetViewer/Main.cpp') diff --git a/samples/SampleAssetViewer/Main.cpp b/samples/SampleAssetViewer/Main.cpp old mode 100644 new mode 100755 index 056f5bb..eed1dde --- a/samples/SampleAssetViewer/Main.cpp +++ b/samples/SampleAssetViewer/Main.cpp @@ -1,151 +1,151 @@ -// 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-2018 NVIDIA Corporation. All rights reserved. - - -#include "Sample.h" -#include "tclap/CmdLine.h" -#include - -#include - - -#define DEFAULT_ASSET_LIST "assets.xml" - -struct TCLAPvec3 -{ - float x, y, z; - TCLAPvec3() :x(0), y(0), z(0){}; - TCLAPvec3& operator=(const std::string &inp) - { - std::istringstream stream(inp); - if (!(stream >> x >> y >> z)) - throw TCLAP::ArgParseException(inp + " is not vec3"); - return *this; - } -}; - -struct TCLAPvec4 -{ - float x, y, z, w; - TCLAPvec4() :x(0), y(0), z(0), w(0){}; - TCLAPvec4& operator=(const std::string &inp) - { - std::istringstream stream(inp); - if (!(stream >> x >> y >> z >> w)) - throw TCLAP::ArgParseException(inp + " is not vec4"); - return *this; - } -}; - -namespace TCLAP { - template<> - struct ArgTraits { - typedef StringLike ValueCategory; - }; - template<> - struct ArgTraits { - typedef StringLike ValueCategory; - }; -} - -using namespace std; -using namespace physx; - -int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow) -{ - PX_UNUSED(hInstance); - PX_UNUSED(hPrevInstance); - PX_UNUSED(lpCmdLine); - PX_UNUSED(nCmdShow); - - // Enable run-time memory check for debug builds. -#if defined(DEBUG) | defined(_DEBUG) - _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); - AllocConsole(); -#endif - - - LPWSTR* argv; - int argc; - argv = CommandLineToArgvW(GetCommandLineW(), &argc); - TCLAP::CmdLine cmd("Blast Sample: Asset Viewer", ' ', "0.1"); - TCLAP::ValueArg inpXmlArg("x", "xml", "Asset list to load", false, DEFAULT_ASSET_LIST, "inassetlist"); - cmd.add(inpXmlArg); - TCLAP::ValueArg alternatePathArg("t", "path", "Alternate path", false, "", "altPath"); - cmd.add(alternatePathArg); - - TCLAP::ValueArg addAssetArg("n", "nAsset", "Additional asset to load", false, "", "additionalAsset"); - cmd.add(addAssetArg); - - TCLAP::ValueArg rotationArg("r", "rot", "Additional asset rotation", false, TCLAPvec4(), "rotation"); - cmd.add(rotationArg); - TCLAP::ValueArg positionArg("p", "pos", "Additional asset position", false, TCLAPvec3(), "position"); - cmd.add(positionArg); - - - PxVec3 transform; - bool addedExternalAsset = false; - - std::vector argsVect; - if (argc > 1) - { - for (size_t i = 0; i < (size_t)argc; ++i) - { - argsVect.push_back(string()); - argsVect.back().resize(wcslen(argv[i]), 0); - wcstombs(&argsVect.back()[0], argv[i], 255); - } - cmd.parse(argsVect); - } - LocalFree(argv); - - SampleConfig config; - config.assetsFile = inpXmlArg.getValue(); - config.sampleName = L"Blast Sample: Asset Viewer"; - - config.assetsFile = inpXmlArg.getValue(); - if (alternatePathArg.isSet()) - { - config.additionalResourcesDir.push_back(alternatePathArg.getValue().c_str()); - } - if (addAssetArg.isSet()) - { - AssetList::ModelAsset asset; - TCLAPvec3 p = positionArg.getValue(); - TCLAPvec4 r = rotationArg.getValue(); - asset.transform.p = PxVec3(p.x, p.y, p.z); - asset.transform.q = PxQuat(r.w, PxVec3(r.x, r.y, r.z).getNormalized()); - asset.name = addAssetArg.getValue(); - asset.id = asset.name; - asset.file = asset.name; - config.additionalAssetList.models.push_back(asset); - } - - int result = runSample(config); - - return result; -} +// 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-2018 NVIDIA Corporation. All rights reserved. + + +#include "Sample.h" +#include "tclap/CmdLine.h" +#include + +#include + + +#define DEFAULT_ASSET_LIST "assets.xml" + +struct TCLAPvec3 +{ + float x, y, z; + TCLAPvec3() :x(0), y(0), z(0){}; + TCLAPvec3& operator=(const std::string &inp) + { + std::istringstream stream(inp); + if (!(stream >> x >> y >> z)) + throw TCLAP::ArgParseException(inp + " is not vec3"); + return *this; + } +}; + +struct TCLAPvec4 +{ + float x, y, z, w; + TCLAPvec4() :x(0), y(0), z(0), w(0){}; + TCLAPvec4& operator=(const std::string &inp) + { + std::istringstream stream(inp); + if (!(stream >> x >> y >> z >> w)) + throw TCLAP::ArgParseException(inp + " is not vec4"); + return *this; + } +}; + +namespace TCLAP { + template<> + struct ArgTraits { + typedef StringLike ValueCategory; + }; + template<> + struct ArgTraits { + typedef StringLike ValueCategory; + }; +} + +using namespace std; +using namespace physx; + +int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow) +{ + PX_UNUSED(hInstance); + PX_UNUSED(hPrevInstance); + PX_UNUSED(lpCmdLine); + PX_UNUSED(nCmdShow); + + // Enable run-time memory check for debug builds. +#if defined(DEBUG) | defined(_DEBUG) + _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); + AllocConsole(); +#endif + + + LPWSTR* argv; + int argc; + argv = CommandLineToArgvW(GetCommandLineW(), &argc); + TCLAP::CmdLine cmd("Blast Sample: Asset Viewer", ' ', "0.1"); + TCLAP::ValueArg inpXmlArg("x", "xml", "Asset list to load", false, DEFAULT_ASSET_LIST, "inassetlist"); + cmd.add(inpXmlArg); + TCLAP::ValueArg alternatePathArg("t", "path", "Alternate path", false, "", "altPath"); + cmd.add(alternatePathArg); + + TCLAP::ValueArg addAssetArg("n", "nAsset", "Additional asset to load", false, "", "additionalAsset"); + cmd.add(addAssetArg); + + TCLAP::ValueArg rotationArg("r", "rot", "Additional asset rotation", false, TCLAPvec4(), "rotation"); + cmd.add(rotationArg); + TCLAP::ValueArg positionArg("p", "pos", "Additional asset position", false, TCLAPvec3(), "position"); + cmd.add(positionArg); + + + PxVec3 transform; + bool addedExternalAsset = false; + + std::vector argsVect; + if (argc > 1) + { + for (size_t i = 0; i < (size_t)argc; ++i) + { + argsVect.push_back(string()); + argsVect.back().resize(wcslen(argv[i]), 0); + wcstombs(&argsVect.back()[0], argv[i], 255); + } + cmd.parse(argsVect); + } + LocalFree(argv); + + SampleConfig config; + config.assetsFile = inpXmlArg.getValue(); + config.sampleName = L"Blast Sample: Asset Viewer"; + + config.assetsFile = inpXmlArg.getValue(); + if (alternatePathArg.isSet()) + { + config.additionalResourcesDir.push_back(alternatePathArg.getValue().c_str()); + } + if (addAssetArg.isSet()) + { + AssetList::ModelAsset asset; + TCLAPvec3 p = positionArg.getValue(); + TCLAPvec4 r = rotationArg.getValue(); + asset.transform.p = PxVec3(p.x, p.y, p.z); + asset.transform.q = PxQuat(r.w, PxVec3(r.x, r.y, r.z).getNormalized()); + asset.name = addAssetArg.getValue(); + asset.id = asset.name; + asset.file = asset.name; + config.additionalAssetList.models.push_back(asset); + } + + int result = runSample(config); + + return result; +} -- cgit v1.2.3