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 Sun Nov 17 2024 03:02:53 for HDK by
1.8.6