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 4.03 Documentation
Results will update as you type.
  • class Enlighten MaterialAlbedoSampler
  • class Enlighten MaterialComponentBuffer
  • class Enlighten MaterialEmissiveSampler
  • class Enlighten MaterialGuids
  • class Enlighten MaterialSampler
  • class Enlighten MaterialTransparencySampler
  • class Enlighten MergeGeometry
  • class Enlighten MergeGeometryCache
  • class Enlighten MergeMap
  • class Enlighten MergeProcessParams
  • class Enlighten MergeStats
  • class Enlighten MergeTriGroupParams
  • class Enlighten MultithreadCpuUpdateManager
  • class Enlighten MultithreadCpuWorker
  • class Enlighten MultithreadCpuWorkerCommon
  • class Enlighten NullGeometryTransparencySampler
  • class Enlighten NullMaterialEmissiveSampler
  • class Enlighten NullMaterialTransparencySampler
  • class Enlighten NullSampler
  • class Enlighten OctreeSearchResult
  • class Enlighten PackedDusterPoint
  • class Enlighten PipelineBoxSetProbeRegion
  • class Enlighten PipelineCubemap
  • class Enlighten PipelineError
  • class Enlighten PipelineExcludedInstance
  • class Enlighten PipelineGeom
  • class Enlighten PipelineGeometryProperties
  • class Enlighten PipelineGlobalParameters
  • class Enlighten PipelineInstanceParameters
  • class Enlighten PipelineMesh
  • class Enlighten PipelinePaths
  • class Enlighten PipelinePointSetProbeRegion
  • class Enlighten PipelineProbeVolume
  • class Enlighten PipelineProgressBase
  • class Enlighten PipelineRadiosityInstance
  • class Enlighten PipelineScene
  • class Enlighten PipelineTransform
  • class Enlighten PipelineUnlitInstance
  • class Enlighten PipelineVolumeProbeRegion
  • class Enlighten PointLight
  • class Enlighten PointProjection
  • class Enlighten PointProjectionOptions
  • class Enlighten PointProjectionScratchMem
  • class Enlighten PointProjectionSurface
  • class Enlighten PointProjectionVersion
  • class Enlighten PppiWorld
  • class Enlighten PrecompInputFace
  • class Enlighten PrecompInputInstance
  • class Enlighten PrecompInputVertex
  • class Enlighten PrecompMaterialInfo
  • class Enlighten PrecompMeshInstanceView
  • class Enlighten PrecompMeshProperties
  • class Enlighten PrecompOctreeNode
  • class Enlighten PrecompOctreeProbeKey
  • class Enlighten PrecomputedVisibilityData
  • class Enlighten PrecomputedVisibilityWorkspace
  • class Enlighten PrecomputeParameters
  • class Enlighten PrecomputePipeline
  • class Enlighten PrecompVoxelId
  • class Enlighten PrecompVoxelOctree
  • class Enlighten PrecompVoxelOctreePath
  • class Enlighten PrecompVoxelOctreeVolume
  • class Enlighten ProbeInterpolant
  • class Enlighten ProbeInterpolationTask
  • class Enlighten ProbeSetManagerOctree
  • class Enlighten ProbeSetOctreeNode
  • class Enlighten ProbeSetVirtualProbe
  • class Enlighten ProfileHistory
  • class Enlighten QuadIterator
  • class Enlighten QuadShader
  • class Enlighten QuickFlatClusterShader
  • class Enlighten QuickQuadShader
  • class Enlighten R9G9B9E5CpuTextureSampler
  • class Enlighten R11G11B10CpuTextureSampler
  • class Enlighten RadCubeMapCore
  • class Enlighten RadCubeMapMetaData
  • class Enlighten RadCubeMapTask
  • class Enlighten RadDataBlock
  • class Enlighten RadDebugBucketSelectionTask
  • class Enlighten RadDebugColouringTask
  • class Enlighten RadDebugPixelInfo
    Calendars

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

    This is the documentation for Enlighten.

    class Enlighten PointProjection

    Sept 09, 2025

    class Enlighten::PointProjection

        └>Geo::IRtMesh
            └>Geo::IGeoReleasable

    Utility class for projecting points into a triangle surface, and optionally 'pushing up'.

    Functions

    Name Description
    Create(Geo::GeoArray< PointProjectionVertex > &, Geo::GeoArray< Geo::s32 > &, Geo::GeoArray< bool > &, bool)

    Create the projection object with a set of geometry to project onto.

    GetNumRtTriangles()

    Returns how many triangles in the mesh.

    GetNumRtVertices()

    Returns how many vertices in the mesh.

    NonCopyable(NonCopyable &&)

    Defaulted to allow move.

    operator=(NonCopyable &&)

    Defaulted to allow move.

    ProjectPoint(PointProjectionScratchMem &, const Geo::v128, const Geo::v128, float, float)

    Project a point.

    ProjectPointAndCalculateNormal(PointProjectionScratchMem &, const Geo::v128, const Geo::v128, Geo::v128 &, Geo::v128 &, float, float)

    Project a point and retrieve the normal of this point on the projected onto surface Note that this requires that the ProjectionPoint structures have proper normals set.

    Release()

    Destroy this object.

    Release()

    Free this object that was created within the Enlighten libraries.

    VisitRtMesh(EmbreeRtMeshVisitor &)

    Calls methods on the given RtMeshVisitor for each vertex and triangle in the mesh.


    static PointProjection* Enlighten::PointProjection::Create


    public: PointProjection * Create
    (
        Geo::GeoArray< PointProjectionVertex > & verts,
        Geo::GeoArray< Geo::s32 > & triIndices,
        Geo::GeoArray< bool > & triIsBlocking,
        bool includePushOff
    )


    Create the projection object with a set of geometry to project onto.

    Note

    In order to save on unnecessary memory copies the contents of the input arrays are grabbed by this class, so after this call these arrays will be empty. Take a copy in advance if you need to use the data in the arrays beyond this call. Also, this class uses the Embree ray tracing engine if you specify includePushOff==true. Embree must be initialised during the lifetime of this class. For instance, using the Geo::InitRayTracing class. This is not required if includePushOff==false.

    Parameters
    [in] verts

    The vertices of the geometry to project onto. All must have valid positions. Normals only need to be valid if includePushOff is true.

    [in] triIndices

    The triangle indices of the geometry to project onto. Must be a multiple of 3 and all indices must be in range of verts.

    [in] triIsBlocking

    Array of bools a 1/3rd of the length of triIndices that determines whether a triangle can be pushed through or is blocking.

    [in] includePushOff

    Whether to build acceleration structures to allow a non-zero maxRayIntersectionDistance in ProjectPoint().


    virtual Geo::s32 Geo::IRtMesh::GetNumRtTriangles


    public: Geo::s32 GetNumRtTriangles() const


    Returns how many triangles in the mesh.


    virtual Geo::s32 Geo::IRtMesh::GetNumRtVertices


    public: Geo::s32 GetNumRtVertices() const


    Returns how many vertices in the mesh.


    Geo::NonCopyable::NonCopyable


    public: NonCopyable
    (
        NonCopyable &&
    )


    Defaulted to allow move.


    NonCopyable& Geo::NonCopyable::operator=


    public: NonCopyable & operator=
    (
        NonCopyable &&
    )


    Defaulted to allow move.


    Geo::v128 Enlighten::PointProjection::ProjectPoint


    public: Geo::v128 ProjectPoint
    (
        PointProjectionScratchMem & scratchMem,
        const Geo::v128 position,
        const Geo::v128 normal,
        float maxRayIntersectionDistance,
        float triThickness
    ) const


    Project a point.


    void Enlighten::PointProjection::ProjectPointAndCalculateNormal


    public: void ProjectPointAndCalculateNormal
    (
        PointProjectionScratchMem & scratchMem,
        const Geo::v128 position,
        const Geo::v128 normal,
        Geo::v128 & outputPosition,
        Geo::v128 & outputNormal,
        float maxRayIntersectionDistance,
        float triThickness
    ) const


    Project a point and retrieve the normal of this point on the projected onto surface Note that this requires that the ProjectionPoint structures have proper normals set.


    virtual void Enlighten::PointProjection::Release


    public: virtual void Release()


    Destroy this object.


    virtual void Geo::IGeoReleasable::Release


    public: void Release()


    Free this object that was created within the Enlighten libraries.

    Expect this to behave in a similar way to calling 'delete(this)'


    virtual void Geo::IRtMesh::VisitRtMesh


    public: void VisitRtMesh
    (
        EmbreeRtMeshVisitor & visitor
    ) const


    Calls methods on the given RtMeshVisitor for each vertex and triangle in the mesh.

    , multiple selections available,
    {"serverDuration": 11, "requestCorrelationId": "3a544e4bb28d4903932a665e6af05b87"}