All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
smoothNormals.h
1//
2// Copyright 2016 Pixar
3//
4// Licensed under the terms set forth in the LICENSE.txt file available at
5// https://openusd.org/license.
6//
7#ifndef PXR_IMAGING_HD_SMOOTH_NORMALS_H
8#define PXR_IMAGING_HD_SMOOTH_NORMALS_H
9
10#include "pxr/pxr.h"
11#include "pxr/imaging/hd/api.h"
12#include "pxr/imaging/hd/types.h"
13
14#include "pxr/base/gf/vec3d.h"
15#include "pxr/base/gf/vec3f.h"
16
17PXR_NAMESPACE_OPEN_SCOPE
18
19
20class Hd_VertexAdjacency;
21
29class Hd_SmoothNormals final
30{
31public:
35 HD_API
36 static VtArray<GfVec3f> ComputeSmoothNormals(
37 Hd_VertexAdjacency const * adjacency,
38 int numPoints,
39 GfVec3f const * pointsPtr);
40 HD_API
41 static VtArray<GfVec3d> ComputeSmoothNormals(
42 Hd_VertexAdjacency const * adjacency,
43 int numPoints,
44 GfVec3d const * pointsPtr);
45 HD_API
46 static VtArray<HdVec4f_2_10_10_10_REV> ComputeSmoothNormalsPacked(
47 Hd_VertexAdjacency const * adjacency,
48 int numPoints,
49 GfVec3f const * pointsPtr);
50 HD_API
51 static VtArray<HdVec4f_2_10_10_10_REV> ComputeSmoothNormalsPacked(
52 Hd_VertexAdjacency const * adjacency,
53 int numPoints,
54 GfVec3d const * pointsPtr);
55
56private:
57 Hd_SmoothNormals() = delete;
58 ~Hd_SmoothNormals() = delete;
59};
60
61
62PXR_NAMESPACE_CLOSE_SCOPE
63
64#endif // PXR_IMAGING_HD_SMOOTH_NORMALS_H
Basic type for a vector of 3 double components.
Definition: vec3d.h:46
Basic type for a vector of 3 float components.
Definition: vec3f.h:46
Represents an arbitrary dimensional rectangular container class.
Definition: array.h:211