Atlassian uses cookies to improve your browsing experience, perform analytics and research, and conduct advertising. Accept all cookies to indicate that you agree to our use of cookies on your device. Atlassian cookies and tracking notice, (opens new window)

Enlighten API 3.10 Documentation
Results will update as you type.
  • class Geo GeoIntrusivePtr
  • class Geo GeoKeyValueArray
  • class Geo GeoLineSegment
  • class Geo GeoList
  • class Geo GeoMap
  • class Geo GeoMemoryDefault
  • class Geo GeoMemoryPool
  • class Geo GeoMemoryStream
  • class Geo GeoNonAABoundingBox
  • class Geo GeoNoopDestructor
  • class Geo GeoPair
  • class Geo GeoParametrisedPlane3
  • class Geo GeoPriorityQueue
  • class Geo GeoProgress
  • class Geo GeoQueue
  • class Geo GeoQueueEnumInterface
  • class Geo GeoRefArrayPtr
  • class Geo GeoRefCount
  • class Geo GeoRefPtr
  • class Geo GeoRefReleasePtr
  • class Geo GeoReleaseDestructor
  • class Geo GeoRGBXTexture
  • class Geo GeoScopedCSection
  • class Geo GeoSingleton
  • class Geo GeoSpatialHash
  • class Geo GeoString
  • class Geo GeoTimer
  • class Geo GeoTokenList
  • class Geo GeoTokenStream
  • class Geo GeoTriangle
  • class Geo GeoTriple
  • class Geo GeoUniqueDelegatePtr
  • class Geo GeoUniquePtr
  • class Geo GeoUniqueReleasePtr
  • class Geo GeoV128Texture
  • class Geo GeoVariant
  • class Geo GeoVirtualPageAllocator
  • class Geo GeoZLibFileStream
  • class Geo GoodRNG
  • class Geo IdentDataCompare
  • class Geo IdentVertLinkBuilder
  • class Geo IdxLink
  • class Geo IffReader
  • class Geo IffTextWriter
  • class Geo IffWriter
  • class Geo IGeoEvent
  • class Geo IGeoInputStream
  • class Geo IGeoProgressProxy
  • class Geo IGeoRayTracingContext
  • class Geo IGeoReleasable
  • class Geo IGeoSerialisable
  • class Geo IGeoStream
  • class Geo IRtMesh
  • class Geo ITerminalCmdHandler
  • class Geo ITerminalDelegate
  • class Geo ITerminalInputHandler
  • class Geo ITerminalOutputHandler
  • class Geo Matrix
  • class Geo MemoryAllocator
  • class Geo NonCopyable
  • class Geo Optional
  • class Geo PackedInteger4
  • class Geo PointLeaf
  • class Geo PointSplit
  • class Geo PointSplitBounds
  • class Geo PointSplitState
  • class Geo QuickTaskTimer
  • class Geo RayResult
  • class Geo Releasable
  • class Geo RingBuffer
  • class Geo RtMesh
  • class Geo RtMeshGroup
  • class Geo ScopedTickCounter
  • class Geo ScopedTimer
  • class Geo SHCoeff
  • class Geo SimpleRNG
  • class Geo TerminalProvider
  • class Geo TextureWriter
  • class Geo TreeNode
  • class Geo TriGroupSelection
  • class Geo TxtProgressBar
    Calendars

You‘re viewing this with anonymous access, so some content might be blocked.
/
class Geo IdentVertLinkBuilder

    This is the documentation for Enlighten.

    class Geo IdentVertLinkBuilder

    Nov 21, 2019

    class Geo::IdentVertLinkBuilder

    A utility for identifying pairs of "identical" vertices in a vertex buffer.

    Runs in O(nlogn) time.

    This class constructs an IdxArray of pairs that link together "identical" vertices. Note that not every possible pair of links is generated. If 3 vertices are identical, we only need 2 links to join them together. So large numbers of identical vertices are represented efficiently. If you wish to test if two vertices are identical, given the generated link array, it is not sufficient to just find an IdxLink with both vertices in it. The links describe a graph so you need to find a link with one of the vertices you are interested in and walk the graph described by the links to see if there is a path of links that touches the other vertex.

    To determine whether two vertices are 'identical' this class uses a mask and does a bit-wise comparison. The mask should cover the stride of a single vertex. Any non-zero value in a byte in the mask indicates that the entire byte should be part of the bit-wise comparison between two vertices. Using this mask you can select the parts of the vertex structure that you consider to be relevant (for example, only masking in the position and normals).

    If a bit-wise comparison is not suitable for your application, the code is fairly simple to modify. See the implementation in corresponding cpp file.

    Functions

    Name Description
    Create(Geo::s32, Geo::s32, const Geo::u8 *, const Geo::u8 *)

    Construct this object and find links between identical vertices.

    GetIdentGroup(Geo::s32, Geo::GeoArray< Geo::s32 > &)

    Get a group of identical vertex indices.

    GetLinkArray()

    Get the link array. Will not be null.

    GetNumIdentGroups()

    The number of groups of indentical vertices.

    GetNumLinks()

    The number of links in the link array.

    Release()

    Release this object.


    static IdentVertLinkBuilder* Geo::IdentVertLinkBuilder::Create


    public: IdentVertLinkBuilder * Create
    (
        Geo::s32 numVertices,
        Geo::s32 vertexStride,
        const Geo::u8 * vertexMask,
        const Geo::u8 * vertexBufferData
    )


    Construct this object and find links between identical vertices.

    Parameters
    [in] numVertices

    The number of vertices. Must be > 0.

    [in] vertexStride

    The size in bytes of a single vertex. Must be > 0.

    [in] vertexMask

    A byte array of length at least vertexStride. Any non-zero value masks in the byte. Cannot be null.

    [in] vertexBufferData

    The vertex data array. The length and vertex stride must match numVertices and vertexStride respectively. Cannot be null.

    Returns

    NULL if the parameters are invalid or there is insufficient memory.


    bool Geo::IdentVertLinkBuilder::GetIdentGroup


    public: bool GetIdentGroup
    (
        Geo::s32 groupIdx,
        Geo::GeoArray< Geo::s32 > & group
    ) const


    Get a group of identical vertex indices.


    const IdxLink* Geo::IdentVertLinkBuilder::GetLinkArray


    public: const IdxLink * GetLinkArray() const


    Get the link array. Will not be null.


    Geo::s32 Geo::IdentVertLinkBuilder::GetNumIdentGroups


    public: Geo::s32 GetNumIdentGroups() const


    The number of groups of indentical vertices.


    Geo::s32 Geo::IdentVertLinkBuilder::GetNumLinks


    public: Geo::s32 GetNumLinks() const


    The number of links in the link array.


    void Geo::IdentVertLinkBuilder::Release


    public: void Release()


    Release this object.

    , multiple selections available,
    {"serverDuration": 10, "requestCorrelationId": "447c5646d034447e8734abaee39b4c87"}