MDL SDK API nvidia_logo_transpbg.gif Up
iimpexp_base.h
Go to the documentation of this file.
1/***************************************************************************************************
2 * Copyright 2022 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{
44 // Undocumented, for alignment only
45 IMPEXP_PRIORITY_FORCE_32_BIT = 0xffffffffU
46};
47
48mi_static_assert( sizeof( Impexp_priority) == sizeof( Uint32));
49
57 public base::Interface_declare<0xf14bab60,0x91d8,0x4a78,0xaa,0xc4,0x6d,0x14,0x02,0xb1,0x97,0x47>
58{
59public:
69 virtual IImpexp_state* create_impexp_state(
70 const char* uri,
71 const IImpexp_state* parent_state = 0) const = 0;
72
87 virtual bool test_file_type( const char* extension) const = 0;
88
93 virtual Impexp_priority get_priority() const = 0;
94
99 virtual const char* get_supported_extensions( Uint32 i) const = 0;
100
113 virtual const char* get_name() const = 0;
114
124 virtual const char* get_author() const = 0;
125
131 virtual base::Uuid get_uuid() const = 0;
132
139 virtual Uint32 get_major_version() const = 0;
140
147 virtual Uint32 get_minor_version() const = 0;
148};
149
150/*
151@}
152*/ // end group mi_neuray_impexp
153
154} // namespace neuraylib
155
156} // namespace mi
157
158#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:58
#define mi_static_assert(expr)
Compile time assertion that raises a compilation error if the constant expression expr evaluates to f...
Definition: assert.h:65
unsigned int Uint32
32-bit unsigned integer.
Definition: types.h:47
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 internal importer or exporter.
Definition: iimpexp_base.h:38
@ 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:43
@ IMPEXP_PRIORITY_OVERRIDE
The highest confidence, reserved for importer and exporter from user plugins.
Definition: iimpexp_base.h:35
@ IMPEXP_PRIORITY_AMBIGUOUS
The test function might fail, or the format might not be fully supported.
Definition: iimpexp_base.h:40
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