diff options
Diffstat (limited to 'intern/cycles/hydra/curves.h')
-rw-r--r-- | intern/cycles/hydra/curves.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/intern/cycles/hydra/curves.h b/intern/cycles/hydra/curves.h new file mode 100644 index 00000000000..a1ac4a86715 --- /dev/null +++ b/intern/cycles/hydra/curves.h @@ -0,0 +1,41 @@ +/* SPDX-License-Identifier: Apache-2.0 + * Copyright 2022 NVIDIA Corporation + * Copyright 2022 Blender Foundation */ + +#pragma once + +#include "hydra/config.h" +#include "hydra/geometry.h" + +#include <pxr/imaging/hd/basisCurves.h> + +HDCYCLES_NAMESPACE_OPEN_SCOPE + +class HdCyclesCurves final : public HdCyclesGeometry<PXR_NS::HdBasisCurves, CCL_NS::Hair> { + public: + HdCyclesCurves(const PXR_NS::SdfPath &rprimId +#if PXR_VERSION < 2102 + , + const PXR_NS::SdfPath &instancerId = {} +#endif + ); + ~HdCyclesCurves() override; + + PXR_NS::HdDirtyBits GetInitialDirtyBitsMask() const override; + + private: + PXR_NS::HdDirtyBits _PropagateDirtyBits(PXR_NS::HdDirtyBits bits) const override; + + void Populate(PXR_NS::HdSceneDelegate *sceneDelegate, + PXR_NS::HdDirtyBits dirtyBits, + bool &rebuild) override; + + void PopulatePoints(PXR_NS::HdSceneDelegate *sceneDelegate); + void PopulateWidths(PXR_NS::HdSceneDelegate *sceneDelegate); + + void PopulatePrimvars(PXR_NS::HdSceneDelegate *sceneDelegate); + + void PopulateTopology(PXR_NS::HdSceneDelegate *sceneDelegate); +}; + +HDCYCLES_NAMESPACE_CLOSE_SCOPE |