NVIDIA IndeX API nvidia_logo_transpbg.gif Up
NVIDIA IndeX API

The NVIDIA IndeX C++ library consists of pure virtual interfaces exposed through a single library entry point. More...

Modules

 NVIDIA IndeX Session
 A session aggregates the entire environment relevant for an user's workspace.
 
 Distributed Data Representation
 Spatial decomposition enabling the distribution of data for distributed data visualization and computing.
 
 Data Distribution
 The distribution of data to nodes in the cluster may change over time but is always known and accessible by an application.
 
 Scene description
 The scene description is hierarchical and resembles those of scene graphs for rendering.
 
 Distributed Rendering
 
 Distributed Computing
 
 NVIDIA IndeX Accelerated Computing Technology
 The NVIDIA IndeX Accelerated Computing (XAC) interfaces enable application-side programming of CUDA programs that are compiled and linked with the NVIDIA IndeX infrastructure in realtime and then injected into the the NVIDIA IndeX rendering or computing pipelines.
 
 Built-in Picking Operation
 
 Configuration
 General configuration settings that control the behavior of NVIDIA IndeX.
 
 Utilities
 
 Performance measurement
 
 Errors
 

Namespaces

namespace  nv::index
 Namespace for NVIDIA IndeX library APIs.
 

Classes

class  nv::index::IIndex_session
 API component for creating the user session in the NVIDIA IndeX library. More...
 
class  nv::index::IIndex
 Interface to represent the entry point to the NVIDIA IndeX library and its functionality. More...
 
class  nv::index::IIndex_loader_configuration
 Optional configuration for how the NVIDIA IndeX library loads its dependeny shared libraries, such as DiCE. More...
 

Functions

nv::index::IIndexnv_index_factory ()
 This factory function is the only public access point to all algorithms and data structures in the NVIDIA IndeX library. More...
 
mi::base::IInterface * nv_factory (const mi::base::Uuid &iid, void *arg)
 Unique public access point to the NVIDIA IndeX library. More...
 
template<class T>
T * nv::index::nv_factory (void *symbol, void *arg=0)
 Convenience function to ease the use of nv_factory(). More...
 

Detailed Description

The NVIDIA IndeX C++ library consists of pure virtual interfaces exposed through a single library entry point.

The NVIDIA IndeX C++ library exports a single factory function nv_factory() which returns an instance of the interface class nv::index::IIndex. The nv::index::IIndex interface enables an application to authenticate, configure, start up, operate with, and shut down the NVIDIA IndeX library. Moreover, nv::index::IIndex represents the main or root interface for using NVIDIA IndeX in applications.

The NVIDIA IndeX libary is composed by various API components. The interface class nv::index::IIndex gives access to the available API components. These API components expose the the use of the data distribution, rendering and computing functionalities and capabilities as well as the data structures that applications operate on.

The NVIDIA IndeX C++ API declares pure virtual interfaces and relies on "plain old data" (POD) only, which enables binary compatibility between different operating system platforms, i.e., the NVIDIA IndeX library supports all Linux distributions without explicit recompilation.

Function Documentation

 nv_factory() [1/2]

mi::base::IInterface * nv_factory ( const mi::base::Uuid &  iid,
void *  arg 
)

Unique public access point to the NVIDIA IndeX library.

This factory function is the only public access point to all algorithms and data structures in the NVIDIA IndeX library. It returns a pointer to an instance of the class identified by the given UUID. Currently the function supports the following interfaces:

  • an instance of the main nv::index::IIndex interface, which is used to configure, to start up, to operate and to shut down NVIDIA IndeX. This interface can be requested only once.
  • an instance of nv::index::IIndex_loader_configuration.
  • an instance of mi::neuraylib::IVersion.
Parameters
[in]iidUUID of the requested interface.
[in]argOptional argument, set this to 0.
Returns
A pointer to an instance of the requested interface, or 0 if there is no interface with the requested UUID. This can happen if the library used at runtime does not match the headers used at compile time. In addition, 0 is returned if the interface nv::index::IIndex is requested a second time.

 nv_factory() [2/2]

template<class T>
T * nv::index::nv_factory ( void *  symbol,
void *  arg = 0 
)

Convenience function to ease the use of nv_factory().

Parameters
[in]symbolPointer to the nv_factory symbol.
[in]argOptional argument.
Returns
A pointer to an interface of type T or 0 if the interface could not be retrieved. See nv_factory for supported interfaces.

 nv_index_factory()

nv::index::IIndex * nv_index_factory ( )

This factory function is the only public access point to all algorithms and data structures in the NVIDIA IndeX library.

It returns an instance of the main nv::index::IIndex interface, which can be used to configure, to start up, to operate with, and to shut down the NVIDIA IndeX library.

Deprecated:
Use nv_factory() instead.
Note
This function may be called only once in each process.
Returns
Returns an instance of the main nv::index::IIndex interface, which represents the entry point in the NVIDIA IndeX library.