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
HUSD_LockedStage.h
Go to the documentation of this file.
1
/*
2
* Copyright 2019 Side Effects Software Inc.
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*
16
*/
17
18
#ifndef __HUSD_LockedStage_h__
19
#define __HUSD_LockedStage_h__
20
21
#include "
HUSD_API.h
"
22
#include "
HUSD_DataHandle.h
"
23
#include "
HUSD_Utils.h
"
24
#include <
UT/UT_StringHolder.h
>
25
#include <
UT/UT_UniquePtr.h
>
26
27
// This class wraps a stage that is constructed from a LOP node by the
28
// HUSD_LockedStageRegistry, and which is guaranteed not to change, even if
29
// the node recooks. This is used primarily by reference and sublayer LOPs
30
// which can reference their inputs. But we may reference the same input
31
// multiple times, with different context options values. So we actually
32
// need to reference a locked copy of the LOP's stage.
33
//
34
// Only the HUSD_LockedStageRegistry singleton should create these objects,
35
// though they may be destroyed by anyone that holds onto a shared pointer
36
// to one. Only const methods are exposed publicly.
37
class
HUSD_API
HUSD_LockedStage
38
{
39
public
:
40
~
HUSD_LockedStage
();
41
42
bool
isValid()
const
;
43
bool
strippedLayers
()
const
44
{
return
myStrippedLayers; }
45
fpreal
time
()
const
46
{
return
myTime; }
47
const
UT_StringHolder
&
getRootLayerIdentifier
()
const
48
{
return
myRootLayerIdentifier; }
49
const
UT_StringHolder
&
getStageCacheIdentifier
()
const
50
{
return
myStageCacheIdentifier; }
51
52
private
:
53
HUSD_LockedStage
(
const
HUSD_DataHandle
&
data
,
54
int
nodeid,
55
bool
strip_layers,
56
fpreal
t
);
57
58
bool
lockStage(
const
HUSD_DataHandle
&
data
,
59
int
nodeid,
60
bool
strip_layers,
61
fpreal
t
);
62
63
class
husd_LockedStagePrivate;
64
65
UT_UniquePtr<husd_LockedStagePrivate>
myPrivate;
66
UT_StringHolder
myRootLayerIdentifier;
67
UT_StringHolder
myStageCacheIdentifier;
68
fpreal
myTime;
69
bool
myStrippedLayers;
70
friend
class
HUSD_LockedStageRegistry
;
71
};
72
73
#endif
74
HUSD_LockedStage::strippedLayers
bool strippedLayers() const
Definition:
HUSD_LockedStage.h:43
HUSD_LockedStageRegistry
Definition:
HUSD_LockedStageRegistry.h:32
HUSD_DataHandle
Definition:
HUSD_DataHandle.h:87
HUSD_API
#define HUSD_API
Definition:
HUSD_API.h:32
t
GLdouble GLdouble t
Definition:
glew.h:1403
HUSD_LockedStage
Definition:
HUSD_LockedStage.h:37
UT_UniquePtr
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
Definition:
UT_UniquePtr.h:33
UT_StringHolder
Definition:
UT_StringHolder.h:1079
HUSD_LockedStage::getRootLayerIdentifier
const UT_StringHolder & getRootLayerIdentifier() const
Definition:
HUSD_LockedStage.h:47
HUSD_API.h
data
GLboolean * data
Definition:
glcorearb.h:130
HUSD_LockedStage::time
fpreal time() const
Definition:
HUSD_LockedStage.h:45
UT_UniquePtr.h
UT_StringHolder.h
fpreal
fpreal64 fpreal
Definition:
SYS_Types.h:277
HUSD_LockedStage::getStageCacheIdentifier
const UT_StringHolder & getStageCacheIdentifier() const
Definition:
HUSD_LockedStage.h:49
HUSD_DataHandle.h
HUSD_Utils.h
HUSD
HUSD_LockedStage.h
Generated on Mon May 16 2022 03:14:17 for HDK by
1.8.6