MDL SDK API nvidia_logo_transpbg.gif Up
iimpexp_base.h
Go to the documentation of this file.
1/***************************************************************************************************
2 * Copyright 2024 NVIDIA Corporation. All rights reserved.
3 **************************************************************************************************/
6
7#ifndef MI_NEURAYLIB_IIMPEXP_BASE_H
8#define MI_NEURAYLIB_IIMPEXP_BASE_H
9
11
12namespace mi {
13
14namespace neuraylib {
15
16class IImpexp_state;
17
31{
43 // Undocumented, for alignment only
44 IMPEXP_PRIORITY_FORCE_32_BIT = 0xffffffffU
45};
46
47mi_static_assert( sizeof( Impexp_priority) == sizeof( Uint32));
48
56 public base::Interface_declare<0xf14bab60,0x91d8,0x4a78,0xaa,0xc4,0x6d,0x14,0x02,0xb1,0x97,0x47>
57{
58public:
68 virtual IImpexp_state* create_impexp_state(
69 const char* uri,
70 const IImpexp_state* parent_state = 0) const = 0;
71
86 virtual bool test_file_type( const char* extension) const = 0;
87
92 virtual Impexp_priority get_priority() const = 0;
93
98 virtual const char* get_supported_extensions( Uint32 i) const = 0;
99
112 virtual const char* get_name() const = 0;
113
123 virtual const char* get_author() const = 0;
124
130 virtual base::Uuid get_uuid() const = 0;
131
138 virtual Uint32 get_major_version() const = 0;
139
146 virtual Uint32 get_minor_version() const = 0;
147};
148
149/*
150@}
151*/ // end group mi_neuray_impexp
152
153} // namespace neuraylib
154
155} // namespace mi
156
157#endif // MI_NEURAYLIB_IIMPEXP_BASE_H
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
Abstract base interface common for importers and exporters.
Definition: iimpexp_base.h:57
#define mi_static_assert(expr)
Compile time assertion that raises a compilation error if the constant expression expr evaluates to f...
Definition: assert.h:58
unsigned int Uint32
32-bit unsigned integer.
Definition: types.h:49
virtual bool test_file_type(const char *extension) const =0
Indicates whether a file name extension is supported.
virtual IImpexp_state * create_impexp_state(const char *uri, const IImpexp_state *parent_state=0) const =0
Returns a state suitable for passing it to a recursive import or export call.
virtual const char * get_author() const =0
Returns a concise single-line clear text description of the author of this importer or exporter.
Impexp_priority
Confidence in capabilities of an importer or exporter.
Definition: iimpexp_base.h:31
virtual const char * get_name() const =0
Returns a concise single-line clear text description of the importer or exporter.
virtual const char * get_supported_extensions(Uint32 i) const =0
Returns the i -th supported file name extension.
virtual base::Uuid get_uuid() const =0
Returns the unique identifier for the importer or exporter.
virtual Uint32 get_major_version() const =0
Returns the major version number of the importer or exporter.
virtual Uint32 get_minor_version() const =0
Returns the minor version number of the importer or exporter.
virtual Impexp_priority get_priority() const =0
Returns the priority of the importer or exporter.
@ IMPEXP_PRIORITY_WELL_DEFINED
The highest possible priority for importers or exporters in plugins provided in the MDL SDK.
Definition: iimpexp_base.h:37
@ IMPEXP_PRIORITY_GUESS
The importer or exporter does not have a good way of detecting the format or the support is very prel...
Definition: iimpexp_base.h:42
@ IMPEXP_PRIORITY_OVERRIDE
The highest priority, reserved for importers and exporters from user plugins.
Definition: iimpexp_base.h:33
@ IMPEXP_PRIORITY_AMBIGUOUS
The test function might fail, or the format might not be fully supported.
Definition: iimpexp_base.h:39
Mixin class template for deriving new interface declarations.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: example_derivatives.dox:5
A 128 bit representation of a universally unique identifier (UUID or GUID).
Definition: uuid.h:26