15#include <vsg/core/Inherit.h>
16#include <vsg/core/observer_ptr.h>
17#include <vsg/io/FileSystem.h>
18#include <vsg/maths/transform.h>
19#include <vsg/state/StateCommand.h>
20#include <vsg/utils/Instrumentation.h>
27 class OperationThreads;
30 class FindDynamicObjects;
31 class PropagateDynamicObjects;
33 using ReaderWriters = std::vector<ref_ptr<ReaderWriter>>;
42 template<
typename... Args>
55 void read(
Input& input)
override;
56 void write(
Output& output)
const override;
59 void add(
const ReaderWriters& rws);
62 ReaderWriters readerWriters;
68 CHECK_ORIGINAL_FILENAME_EXISTS_FIRST,
72 FindFileHint checkFilenameHint = CHECK_ORIGINAL_FILENAME_EXISTS_FIRST;
76 using FindFileCallback = std::function<
Path(
const Path& filename,
const Options* options)>;
77 FindFileCallback findFileCallback;
82 bool mapRGBtoRGBAHint =
true;
85 CoordinateConvention sceneCoordinateConvention = CoordinateConvention::Z_UP;
120 template<
typename... Args>
121 bool compatibleExtension(
const vsg::Path& filename,
const vsg::Options* options,
const Args&... args)
123 if (options && options->extensionHint && contains(options->extensionHint, args...))
return true;
124 return contains(vsg::lowerCaseFileExtension(filename), args...);
128 template<
typename... Args>
129 bool compatibleExtension(
const vsg::Options* options,
const Args&... args)
131 return options && options->extensionHint && contains(options->extensionHint, args...);
Definition CommandLine.h:44
Class for passing IO related options to vsg::read/write calls.
Definition Options.h:37
std::map< Path, CoordinateConvention > formatCoordinateConventions
Coordinate convention to assume for specified lower case file formats extensions.
Definition Options.h:88
ref_ptr< FindDynamicObjects > findDynamicObjects
mechanism for finding dynamic objects in loaded scene graph
Definition Options.h:106
FindFileHint
Hint to use when searching for Paths with vsg::findFile(filename, options);.
Definition Options.h:67
@ CHECK_ORIGINAL_FILENAME_EXISTS_LAST
check the filename exists with its original path before trying to find it in Options::paths.
Definition Options.h:69
virtual bool readOptions(CommandLine &arguments)
read command line options, assign values to this options object to later use with reading/writing fil...
ref_ptr< Instrumentation > instrumentation
Hook for assigning Instrumentation to enable profiling of record traversal.
Definition Options.h:103
int compare(const Object &rhs) const override
compare two objects, return -1 if this object is less than rhs, return 0 if it's equal,...
StateCommands inheritedState
Definition Options.h:100
ref_ptr< PropagateDynamicObjects > propagateDynamicObjects
mechanism for propogating dynamic objects classification up parental chain so that cloning is done on...
Definition Options.h:109
std::map< std::string, ref_ptr< ShaderSet > > shaderSets
Definition Options.h:96