HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TIL_DeepReader.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: TIL_DeepReader.h ( TIL Library, C++)
7  *
8  * COMMENTS: A deep reader is in an interface to writing a deep raster.
9  * The user may write arbitrary tags to the image. However, there
10  * are a couple of well defined tags which should be handled:
11  * flipbook - It's in flipbook mode
12  * blackpoint(P) - Set the blackpoint
13  * whitepoint(P) - Set the whitepoint
14  * edgestreak(P) - Turn on edge streaking (4 ints)
15  * sourcename - The name of the image
16  * statusmessage - A status message
17  * aspect - Aspect ratio for the image
18  * cropwindow - Specify the crop window (4 ints)
19  * Attributes marked with (P) are considered either global or
20  * per-plane.
21  */
22 
23 #ifndef __TIL_DeepReader__
24 #define __TIL_DeepReader__
25 
26 #include "TIL_API.h"
27 #include <UT/UT_NonCopyable.h>
28 #include <SYS/SYS_Types.h>
29 
30 class UT_StringArray;
31 
32 template<typename T>
33 class UT_Vector3T;
34 
36 {
37 public:
39  virtual ~TIL_DeepReader();
40 
42 
43  virtual int64 getMemoryUsage(bool inclusive) const = 0;
44 
45  // Query methods.
46  virtual int getXres() const = 0;
47  virtual int getYres() const = 0;
48  virtual int getPlaneDataFormat(int plane_index) const = 0;
49 
50  /// When no more data will be written to the reader, this method is called.
51  virtual bool complete();
52 
53  /// This assumes that the data is in the "correct" endian-ness. Please
54  /// ensure that this is done (esp. when reading from sockets).
55  virtual bool writeTile(int plane_index,
56  int x0, int x1, int y0, int y1,
57  void *data) = 0;
58 
59  virtual bool writeSamples(
60  int nsamples,
61  int floats_per_sample,
63  const float *data) = 0;
64 
65  /// Call to notify something that the image has updated. This allows you
66  /// to uncouple tile writes from updates. This version does nothing.
67  virtual void updateImage();
68 
69  // Per plane attributes. For an attribute which is global (i.e.
70  // cropwindow), set the plane index to -1.
71  virtual bool setTag(int plane, int tag, const char *val);
72  virtual bool setTag(int plane, int tag,
73  const UT_StringArray &values);
74  virtual bool setTag(int plane, int tag,
75  const int *values, int nvalues);
76  virtual bool setTag(int plane, int tag,
77  const float *values, int nvalues);
78 
79 protected:
80  virtual int adjustPlaneIndex( int index ) const;
81 };
82 
83 #endif
void writeSamples(short *data, int size)
3D Vector class.
GLdouble y1
Definition: glad.h:2349
#define UT_NON_COPYABLE(CLASS)
Define deleted copy constructor and assignment operator inside a class.
long long int64
Definition: SYS_Types.h:116
GLsizei samples
Definition: glcorearb.h:1298
GLenum GLsizei GLsizei GLint * values
Definition: glcorearb.h:1602
GLuint index
Definition: glcorearb.h:786
GLuint GLfloat * val
Definition: glcorearb.h:1608
#define TIL_API
Definition: TIL_API.h:10
Definition: format.h:895