24#ifndef PXR_IMAGING_HD_ST_SMOOTH_NORMALS_H
25#define PXR_IMAGING_HD_ST_SMOOTH_NORMALS_H
28#include "pxr/imaging/hdSt/api.h"
29#include "pxr/imaging/hdSt/computation.h"
31#include "pxr/imaging/hd/bufferSource.h"
35PXR_NAMESPACE_OPEN_SCOPE
38class Hd_VertexAdjacency;
39class HdSt_VertexAdjacencyBuilder;
49 HdSt_SmoothNormalsComputationCPU(
50 Hd_VertexAdjacency
const *adjacency,
51 HdBufferSourceSharedPtr
const &points,
53 HdBufferSourceSharedPtr
const &adjacencyBuilder,
70 Hd_VertexAdjacency
const *_adjacency;
71 HdBufferSourceSharedPtr _points;
73 HdBufferSourceSharedPtr _adjacencyBuilder;
85 HdSt_SmoothNormalsComputationGPU(
86 HdSt_VertexAdjacencyBuilder
const *vertexAdjacencyBuilder,
96 void Execute(HdBufferArrayRangeSharedPtr
const &range,
105 HdSt_VertexAdjacencyBuilder
const *_vertexAdjacencyBuilder;
113PXR_NAMESPACE_CLOSE_SCOPE
virtual bool _CheckValid() const =0
Checks the validity of the source buffer.
virtual bool Resolve()=0
Prepare the access of GetData().
virtual void GetBufferSpecs(HdBufferSpecVector *specs) const =0
Add the buffer spec for this buffer source into given bufferspec vector.
A abstract base class for cpu computation followed by buffer transfer to the GPU.
virtual HD_API TfToken const & GetName() const override
Return the name of this buffer source.
A central registry for resources.
An interface class for GPU computation.
virtual void Execute(HdBufferArrayRangeSharedPtr const &range, HdResourceRegistry *resourceRegistry)=0
Execute computation.
virtual void GetBufferSpecs(HdBufferSpecVector *specs) const =0
Add the buffer spec for this computation into given bufferspec vector.
virtual int GetNumOutputElements() const =0
Returns the size of its destination buffer (located by range argument of Execute()).
Token for efficient comparison, assignment, and hashing of known strings.
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...