HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IMX_ParmDataItem.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: IMX_ParmDataItem.h ( GU Library, C++)
7  *
8  * COMMENTS: Represents IMX data in parameter.
9  */
10 
11 #ifndef __IMX_ParmDataItem__
12 #define __IMX_ParmDataItem__
13 
14 #include "IMX_API.h"
15 #include "IMX_Attribute.h"
16 #include "IMX_Layer.h"
17 #include "IMX_VDB.h"
18 #include <PRM/PRM_Parm.h>
19 #include <PRM/PRM_Type.h>
20 
22 {
23 public:
26  : myLayer(layer) {}
27 
29  { return PRM_Type::PRM_DATA_NONE; }
30  const char *getDataTypeToken() const override { return "imagelayer"; }
31 
32  bool saveAscii(std::ostream &os) const override;
33  bool saveBinary(std::ostream &os) const override;
34 
35  int64 getMemoryUsage() const override;
36 
37  // Override to return true when we know getDataTypeToken() and saveAscii()
38  // are "safe".
39  bool canSaveAsUnprotectedString() const override { return true; }
40 
41  IMX_LayerConstPtr layer() const { return myLayer; }
42 
43 private:
44  IMX_LayerConstPtr myLayer;
45 };
46 
48 {
49 public:
52  : myVDB(vdb) {}
53 
55  { return PRM_Type::PRM_DATA_NONE; }
56  const char *getDataTypeToken() const override { return "nanovdb"; }
57 
58  bool saveAscii(std::ostream &os) const override;
59  bool saveBinary(std::ostream &os) const override;
60 
61  int64 getMemoryUsage() const override;
62 
63  // Override to return true when we know getDataTypeToken() and saveAscii()
64  // are "safe".
65  bool canSaveAsUnprotectedString() const override { return true; }
66 
67  IMX_VDBConstPtr vdb() const { return myVDB; }
68 
69 private:
70  IMX_VDBConstPtr myVDB;
71 };
72 
74 {
75 public:
78  : myAttribute(vdb) {}
79 
81  { return PRM_Type::PRM_DATA_NONE; }
82  const char *getDataTypeToken() const override { return "attribute"; }
83 
84  bool saveAscii(std::ostream &os) const override;
85  bool saveBinary(std::ostream &os) const override;
86 
87  int64 getMemoryUsage() const override;
88 
89  // Override to return true when we know getDataTypeToken() and saveAscii()
90  // are "safe".
91  bool canSaveAsUnprotectedString() const override { return true; }
92 
93  IMX_AttributeConstPtr attrib() const { return myAttribute; }
94 
95 private:
96  IMX_AttributeConstPtr myAttribute;
97 };
98 
99 #endif
virtual bool saveBinary(std::ostream &os) const =0
PRM_Type::PRM_DataType getDataType() const override
const char * getDataTypeToken() const override
IMX_ParmLayerDataItem(IMX_LayerConstPtr layer)
IMX_ParmVDBDataItem(IMX_VDBConstPtr vdb)
bool canSaveAsUnprotectedString() const override
const char * getDataTypeToken() const override
IMX_VDBConstPtr vdb() const
bool canSaveAsUnprotectedString() const override
const char * getDataTypeToken() const override
PRM_Type::PRM_DataType getDataType() const override
GLenum GLuint GLint GLint layer
Definition: glcorearb.h:1299
virtual bool saveAscii(std::ostream &os) const =0
PRM_Type::PRM_DataType getDataType() const override
IMX_ParmAttributeDataItem(IMX_AttributeConstPtr vdb)
virtual int64 getMemoryUsage() const =0
UT_SharedPtr< const IMX_Layer > IMX_LayerConstPtr
Definition: IMX_Layer.h:28
UT_SharedPtr< const IMX_VDB > IMX_VDBConstPtr
Definition: IMX_VDB.h:35
UT_SharedPtr< const IMX_Attribute > IMX_AttributeConstPtr
Definition: IMX_Attribute.h:36
long long int64
Definition: SYS_Types.h:116
bool canSaveAsUnprotectedString() const override
PRM_DataType
Definition: PRM_Type.h:116
#define IMX_API
Definition: IMX_API.h:8
IMX_AttributeConstPtr attrib() const
IMX_LayerConstPtr layer() const