24#ifndef PXR_IMAGING_HD_ST_FLAT_NORMALS_H
25#define PXR_IMAGING_HD_ST_FLAT_NORMALS_H
28#include "pxr/imaging/hdSt/api.h"
29#include "pxr/imaging/hdSt/computation.h"
31#include "pxr/imaging/hd/bufferSource.h"
32#include "pxr/imaging/hd/flatNormals.h"
36PXR_NAMESPACE_OPEN_SCOPE
47 HdSt_FlatNormalsComputationCPU(
49 HdBufferSourceSharedPtr
const &points,
68 HdBufferSourceSharedPtr
const _points;
81 HdSt_FlatNormalsComputationGPU(
82 HdBufferArrayRangeSharedPtr
const &topologyRange,
83 HdBufferArrayRangeSharedPtr
const &vertexRange,
94 void Execute(HdBufferArrayRangeSharedPtr
const &range,
100 HdBufferArrayRangeSharedPtr
const _topologyRange;
101 HdBufferArrayRangeSharedPtr
const _vertexRange;
110PXR_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.
Topology data for meshes.
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...