HDK
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
smoothNormals.h
Go to the documentation of this file.
1
//
2
// Copyright 2016 Pixar
3
//
4
// Licensed under the Apache License, Version 2.0 (the "Apache License")
5
// with the following modification; you may not use this file except in
6
// compliance with the Apache License and the following modification to it:
7
// Section 6. Trademarks. is deleted and replaced with:
8
//
9
// 6. Trademarks. This License does not grant permission to use the trade
10
// names, trademarks, service marks, or product names of the Licensor
11
// and its affiliates, except as required to comply with Section 4(c) of
12
// the License and to reproduce the content of the NOTICE file.
13
//
14
// You may obtain a copy of the Apache License at
15
//
16
// http://www.apache.org/licenses/LICENSE-2.0
17
//
18
// Unless required by applicable law or agreed to in writing, software
19
// distributed under the Apache License with the above modification is
20
// distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21
// KIND, either express or implied. See the Apache License for the specific
22
// language governing permissions and limitations under the Apache License.
23
//
24
#ifndef PXR_IMAGING_HD_SMOOTH_NORMALS_H
25
#define PXR_IMAGING_HD_SMOOTH_NORMALS_H
26
27
#include "
pxr/pxr.h
"
28
#include "
pxr/imaging/hd/api.h
"
29
#include "
pxr/imaging/hd/types.h
"
30
31
#include "
pxr/base/gf/vec3d.h
"
32
#include "
pxr/base/gf/vec3f.h
"
33
34
PXR_NAMESPACE_OPEN_SCOPE
35
36
37
class
Hd_VertexAdjacency
;
38
39
/// \class Hd_SmoothNormals
40
///
41
/// Hd_SmoothNormals encapsulates mesh smooth normals information.
42
/// It uses passed-in adjacency information and points data to compute
43
/// smooth per-vertex normals. It does this by averaging face normals of
44
/// faces surrounding a vertex.
45
///
46
class
Hd_SmoothNormals
final
47
{
48
public
:
49
/// Computes the smooth normals result using the supplied adjacency
50
/// information and points data. Returns an array of the same size and
51
/// type as the source points, with optional packing.
52
HD_API
53
static
VtArray<GfVec3f>
ComputeSmoothNormals
(
54
Hd_VertexAdjacency
const
* adjacency,
55
int
numPoints,
56
GfVec3f
const
* pointsPtr);
57
HD_API
58
static
VtArray<GfVec3d>
ComputeSmoothNormals
(
59
Hd_VertexAdjacency
const
* adjacency,
60
int
numPoints,
61
GfVec3d
const
* pointsPtr);
62
HD_API
63
static
VtArray<HdVec4f_2_10_10_10_REV>
ComputeSmoothNormalsPacked
(
64
Hd_VertexAdjacency
const
* adjacency,
65
int
numPoints,
66
GfVec3f
const
* pointsPtr);
67
HD_API
68
static
VtArray<HdVec4f_2_10_10_10_REV>
ComputeSmoothNormalsPacked
(
69
Hd_VertexAdjacency
const
* adjacency,
70
int
numPoints,
71
GfVec3d
const
* pointsPtr);
72
73
private
:
74
Hd_SmoothNormals
() =
delete
;
75
~
Hd_SmoothNormals
() =
delete
;
76
};
77
78
79
PXR_NAMESPACE_CLOSE_SCOPE
80
81
#endif // PXR_IMAGING_HD_SMOOTH_NORMALS_H
Hd_SmoothNormals
Definition:
smoothNormals.h:46
GfVec3f
Definition:
vec3f.h:62
api.h
HD_API
#define HD_API
Definition:
api.h:40
Hd_VertexAdjacency
Definition:
vertexAdjacency.h:75
types.h
pxr.h
Hd_SmoothNormals::ComputeSmoothNormals
static HD_API VtArray< GfVec3f > ComputeSmoothNormals(Hd_VertexAdjacency const *adjacency, int numPoints, GfVec3f const *pointsPtr)
VtArray< GfVec3f >
PXR_NAMESPACE_OPEN_SCOPE
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
Definition:
path.h:1432
vec3d.h
Hd_SmoothNormals::ComputeSmoothNormalsPacked
static HD_API VtArray< HdVec4f_2_10_10_10_REV > ComputeSmoothNormalsPacked(Hd_VertexAdjacency const *adjacency, int numPoints, GfVec3f const *pointsPtr)
GfVec3d
Definition:
vec3d.h:62
PXR_NAMESPACE_CLOSE_SCOPE
#define PXR_NAMESPACE_CLOSE_SCOPE
Definition:
pxr.h:91
vec3f.h
pxr
imaging
hd
smoothNormals.h
Generated on Tue Apr 1 2025 02:51:20 for HDK by
1.8.6