neuray API Programmer's Manual

ipolygon_connectivity.h File Reference

Description

Polygon connectivities and associated helper classes.

Code Example

ipolygon_connectivity.h

‎/***************************************************************************************************
 * Copyright 2024 NVIDIA Corporation. All rights reserved.
 **************************************************************************************************/

#ifndef MI_NEURAYLIB_IPOLYGON_CONNECTIVITY_H
#define MI_NEURAYLIB_IPOLYGON_CONNECTIVITY_H

#include <mi/neuraylib/iattribute_vector.h>
#include <mi/neuraylib/identifier.h>

namespace mi {

namespace neuraylib {









































class IPolygon_connectivity :
    public base::Interface_declare<0xebb5744c,0xf20a,0x4b54,0xa4,0x47,0xfe,0x4f,0xc4,0x94,0x6c,0x96>
{
public:


    virtual Uint32 
               polygons_size() const = 0;

    virtual Uint32 
               polygon_corners_size( Polygon_handle_struct p) const = 0;

    virtual Sint32 
               set_polygon_indices( Polygon_handle_struct p, const Uint32* indices) = 0;

    virtual Sint32 
               set_polygon_indices(
        Polygon_handle_struct p, Uint32 v0, Uint32 v1, Uint32 v2) = 0;

    virtual Sint32 
               set_polygon_indices(
        Polygon_handle_struct p, Uint32 v0, Uint32 v1, Uint32 v2, Uint32 v3) = 0;

    virtual Uint32 
               get_polygon_index( Polygon_handle_struct p, Uint32 vertex) const = 0;

    virtual bool is_valid_connectivity() const = 0;




    virtual bool has_attribute( Mesh_attribute_name name) const = 0;

    virtual IAttribute_vector* create_attribute_vector(
        Mesh_attribute_name name, Uint32 dim = 1) const = 0;

    virtual const IAttribute_vector* access_attribute_vector( Mesh_attribute_name name) const = 0;

    virtual IAttribute_vector* edit_attribute_vector( Mesh_attribute_name name) = 0;

    virtual Sint32 
               attach_attribute_vector( IAttribute_vector* attr) = 0;

    virtual Sint32 
               remove_attribute_vector( Mesh_attribute_name name) = 0;




    virtual Connectivity_map_type 
               get_map_type() const = 0;

    virtual bool is_hole( Polygon_handle_struct p) const = 0;

};
 // end group mi_neuray_leaf_nodes

} // namespace neuraylib

} // namespace mi

#endif // MI_NEURAYLIB_IPOLYGON_CONNECTIVITY_H

Namespaces

namespace 
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH. More...
namespace 
Namespace for the neuray API. More...

Classes

class 
A connectivity class for polygon mesh geometry and their attributes. More...