HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HUSD_ConfigureLayer.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_ConfigureLayer_h__
19 #define __HUSD_ConfigureLayer_h__
20 
21 #include "HUSD_API.h"
22 #include "HUSD_DataHandle.h"
23 #include <UT/UT_StringHolder.h>
24 
26 {
27 public:
30 
31  // This flag controls whether all future calls to this object should
32  // just affect the active layer, or should also be applied to the stage
33  // root layer.
34  void setModifyRootLayer(bool modifyrootlayer);
35 
36  // Sets Houdini-specific custom data to control the save location and
37  // save behavior for this layer.
38  bool setSavePath(const UT_StringRef &save_path,
39  bool save_path_is_time_dependent) const;
40  bool setSaveControl(const UT_StringRef &save_control) const;
41 
42  // Sets standard layer metadata items.
43  bool setStartTime(fpreal64 start_time) const;
44  bool setEndTime(fpreal64 end_time) const;
45  bool setTimeCodesPerSecond(fpreal64 time_per_second) const;
46  bool setFramesPerSecond(fpreal64 frames_per_second) const;
47  bool setDefaultPrim(const UT_StringRef &primpath) const;
48  bool setComment(const UT_StringRef &comment) const;
49 
50  // Stage level metrics.
51  bool setUpAxis(const UT_StringRef &upaxis) const;
52  bool setMetersPerUnit(fpreal metersperunit) const;
53 
54  // Render settings metadata
55  bool setRenderSettings(const UT_StringRef &primpath) const;
56 
57  // This function sets a stage variable on the layer.
58  // Supported UT_ValueTypes can be found in HUSD_CustomData.h.
59  // Make sure to explicitly cast to one of these data types, even if
60  // implicit conversions exist.
61  template<typename UtValueType>
62  bool setStageVariable(const UT_StringRef &key,
63  const UtValueType &value) const;
64 
65 private:
66  HUSD_AutoWriteLock &myWriteLock;
67  bool myModifyRootLayer;
68 };
69 
70 #endif
71 
#define HUSD_API
Definition: HUSD_API.h:32
double fpreal64
Definition: SYS_Types.h:201
fpreal64 fpreal
Definition: SYS_Types.h:277
Definition: core.h:1131