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_VDB.h"
16 #include "IMX_Layer.h"
17 #include <PRM/PRM_Parm.h>
18 #include <PRM/PRM_Type.h>
19 
21 {
22 public:
25  : myLayer(layer) {}
26 
28  { return PRM_Type::PRM_DATA_NONE; }
29  const char *getDataTypeToken() const override { return "imagelayer"; }
30 
31  bool saveAscii(std::ostream &os) const override;
32  bool saveBinary(std::ostream &os) const override;
33 
34  int64 getMemoryUsage() const override;
35 
36  // Override to return true when we know getDataTypeToken() and saveAscii()
37  // are "safe".
38  bool canSaveAsUnprotectedString() const override { return true; }
39 
40  IMX_LayerConstPtr layer() const { return myLayer; }
41 
42 private:
43  IMX_LayerConstPtr myLayer;
44 };
45 
47 {
48 public:
51  : myVDB(vdb) {}
52 
54  { return PRM_Type::PRM_DATA_NONE; }
55  const char *getDataTypeToken() const override { return "nanovdb"; }
56 
57  bool saveAscii(std::ostream &os) const override;
58  bool saveBinary(std::ostream &os) const override;
59 
60  int64 getMemoryUsage() const override;
61 
62  // Override to return true when we know getDataTypeToken() and saveAscii()
63  // are "safe".
64  bool canSaveAsUnprotectedString() const override { return true; }
65 
66  IMX_VDBConstPtr vdb() const { return myVDB; }
67 
68 private:
69  IMX_VDBConstPtr myVDB;
70 };
71 
72 #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)
const char * getDataTypeToken() const override
IMX_VDBConstPtr vdb() const
bool canSaveAsUnprotectedString() 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
virtual int64 getMemoryUsage() const =0
UT_SharedPtr< const IMX_Layer > IMX_LayerConstPtr
Definition: IMX_Layer.h:27
UT_SharedPtr< const IMX_VDB > IMX_VDBConstPtr
Definition: IMX_VDB.h:34
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_LayerConstPtr layer() const