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_Options.h
>
25
#include <
UT/UT_StringHolder.h
>
26
#include <
UT/UT_UniquePtr.h
>
27
28
// This class wraps a stage that is constructed from a LOP node by the
29
// HUSD_LockedStageRegistry, and which is guaranteed not to change, even if
30
// the node recooks. This is used primarily by reference and sublayer LOPs
31
// which can reference their inputs. But we may reference the same input
32
// multiple times, with different context options values. So we actually
33
// need to reference a locked copy of the LOP's stage.
34
//
35
// Only the HUSD_LockedStageRegistry singleton should create these objects,
36
// though they may be destroyed by anyone that holds onto a shared pointer
37
// to one. Only const methods are exposed publicly.
38
class
HUSD_API
HUSD_LockedStage
39
{
40
public
:
41
~
HUSD_LockedStage
();
42
43
bool
isValid()
const
;
44
bool
strippedLayers
()
const
45
{
return
myStrippedLayers; }
46
fpreal
time
()
const
47
{
return
myTime; }
48
const
UT_StringHolder
&
getRootLayerIdentifier
()
const
49
{
return
myRootLayerIdentifier; }
50
const
UT_StringHolder
&
getStageCacheIdentifier
()
const
51
{
return
myStageCacheIdentifier; }
52
53
private
:
54
HUSD_LockedStage
(
const
HUSD_DataHandle
&
data
,
55
int
nodeid,
56
bool
strip_layers,
57
fpreal
t
,
58
const
UT_Options
&opts);
59
60
bool
lockStage(
const
HUSD_DataHandle
&
data
,
61
int
nodeid,
62
bool
strip_layers,
63
fpreal
t
,
64
const
UT_Options
&opts);
65
66
class
husd_LockedStagePrivate;
67
68
UT_UniquePtr<husd_LockedStagePrivate>
myPrivate;
69
UT_StringHolder
myRootLayerIdentifier;
70
UT_StringHolder
myStageCacheIdentifier;
71
UT_Options
myOptions;
72
fpreal
myTime;
73
bool
myStrippedLayers;
74
friend
class
HUSD_LockedStageRegistry
;
75
};
76
77
#endif
78
HUSD_LockedStage::strippedLayers
bool strippedLayers() const
Definition:
HUSD_LockedStage.h:44
HUSD_LockedStageRegistry
Definition:
HUSD_LockedStageRegistry.h:34
HUSD_DataHandle
Definition:
HUSD_DataHandle.h:87
HUSD_API
#define HUSD_API
Definition:
HUSD_API.h:32
UT_Options.h
HUSD_LockedStage
Definition:
HUSD_LockedStage.h:38
UT_UniquePtr
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
Definition:
UT_UniquePtr.h:39
UT_StringHolder
Definition:
UT_StringHolder.h:999
HUSD_LockedStage::getRootLayerIdentifier
const UT_StringHolder & getRootLayerIdentifier() const
Definition:
HUSD_LockedStage.h:48
HUSD_API.h
t
GLdouble t
Definition:
glad.h:2397
UT_Options
A map of string to various well defined value types.
Definition:
UT_Options.h:84
HUSD_LockedStage::time
fpreal time() const
Definition:
HUSD_LockedStage.h:46
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:50
HUSD_DataHandle.h
HUSD_Utils.h
data
Definition:
format.h:895
HUSD
HUSD_LockedStage.h
Generated on Sun Sep 15 2024 02:47:20 for HDK by
1.8.6