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
coordSys.h
Go to the documentation of this file.
1
//
2
// Copyright 2019 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_COORD_SYS_H
25
#define PXR_IMAGING_HD_COORD_SYS_H
26
27
#include "
pxr/pxr.h
"
28
#include "
pxr/imaging/hd/api.h
"
29
#include "
pxr/imaging/hd/version.h
"
30
#include "
pxr/imaging/hd/sprim.h
"
31
32
PXR_NAMESPACE_OPEN_SCOPE
33
34
/// \class HdCoordSys
35
///
36
/// HdCoordSys representes a coordinate system as a Hydra state prim.
37
///
38
/// Coordinate systems may be referred to by name from a shader network.
39
/// Following the convention in UsdShadeCoordSysAPI, we use the Hydra
40
/// id to establish the name, where the id is a namespaced property
41
/// path of the form <tt><.../prim.coordSys:NAME></tt>. GetName()
42
/// will retrieve the name.
43
///
44
/// Each rprim may have a set of bound coordinate systems, which
45
/// may be retrieved via the <tt>HdTokens->coordSysBindings</tt> key.
46
/// The returned value is of type HdIdVectorSharedPtr, a reference-
47
/// counted pointer to a vector of ids of coordinate systems.
48
/// The intention of this design is to make it efficient for scene
49
/// delegates to communicate to renderer delegates the common
50
/// mappings of bound coordinate systems across groups of rprims.
51
///
52
/// The transform value of an HdCoordSys is the matrix representation
53
/// of the transform from its local space to world space. In other
54
/// words, it has the same interpretation as the transform for rprims.
55
///
56
class
HdCoordSys
:
public
HdSprim
57
{
58
public
:
59
HD_API
60
HdCoordSys
(
SdfPath
const
&
id
);
61
HD_API
62
~HdCoordSys
()
override
;
63
64
// Change tracking for HdCoordSys
65
enum
DirtyBits
:
HdDirtyBits
{
66
Clean
= 0,
67
DirtyName
= 1 << 0,
68
DirtyTransform
= 1 << 1,
69
AllDirty
= (
DirtyTransform
70
|
DirtyName
)
71
};
72
73
/// Returns the name bound to this coordinate system.
74
///
75
/// There may be multiple coordinate systems with the same
76
/// name, but they must associate with disjoint sets of rprims.
77
TfToken
GetName
()
const
{
return
_name; }
78
79
HD_API
80
void
Sync
(
HdSceneDelegate
*sceneDelegate,
81
HdRenderParam
*renderParam,
82
HdDirtyBits
*dirtyBits)
override
;
83
84
HD_API
85
HdDirtyBits
GetInitialDirtyBitsMask
()
const override
;
86
87
private
:
88
TfToken
_name;
89
};
90
91
PXR_NAMESPACE_CLOSE_SCOPE
92
93
#endif // PXR_IMAGING_HD_COORD_SYS_H
HdCoordSys::DirtyBits
DirtyBits
Definition:
coordSys.h:65
HdCoordSys::DirtyName
Definition:
coordSys.h:67
HdDirtyBits
uint32_t HdDirtyBits
Definition:
types.h:158
api.h
HD_API
#define HD_API
Definition:
api.h:40
HdCoordSys::Sync
HD_API void Sync(HdSceneDelegate *sceneDelegate, HdRenderParam *renderParam, HdDirtyBits *dirtyBits) override
HdRenderParam
Definition:
renderDelegate.h:62
HdCoordSys::DirtyTransform
Definition:
coordSys.h:68
version.h
TfToken
Definition:
token.h:87
HdCoordSys::AllDirty
Definition:
coordSys.h:69
HdCoordSys::GetInitialDirtyBitsMask
HD_API HdDirtyBits GetInitialDirtyBitsMask() const override
pxr.h
HdSceneDelegate
Definition:
sceneDelegate.h:408
SdfPath
Definition:
path.h:290
HdCoordSys::HdCoordSys
HD_API HdCoordSys(SdfPath const &id)
HdSprim
Definition:
sprim.h:51
PXR_NAMESPACE_OPEN_SCOPE
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
Definition:
path.h:1432
PXR_NAMESPACE_CLOSE_SCOPE
#define PXR_NAMESPACE_CLOSE_SCOPE
Definition:
pxr.h:91
HdCoordSys
Definition:
coordSys.h:56
HdCoordSys::~HdCoordSys
HD_API ~HdCoordSys() override
sprim.h
HdCoordSys::Clean
Definition:
coordSys.h:66
HdCoordSys::GetName
TfToken GetName() const
Definition:
coordSys.h:77
pxr
imaging
hd
coordSys.h
Generated on Tue Dec 17 2024 03:41:18 for HDK by
1.8.6