HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_CopRaster.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2018
3  * Side Effects Software Inc. All rights reserved.
4  *
5  * Redistribution and use of Houdini Development Kit samples in source and
6  * binary forms, with or without modification, are permitted provided that the
7  * following conditions are met:
8  * 1. Redistributions of source code must retain the above copyright notice,
9  * this list of conditions and the following disclaimer.
10  * 2. The name of Side Effects Software may not be used to endorse or
11  * promote products derived from this software without specific prior
12  * written permission.
13  *
14  * THIS SOFTWARE IS PROVIDED BY SIDE EFFECTS SOFTWARE `AS IS' AND ANY EXPRESS
15  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
17  * NO EVENT SHALL SIDE EFFECTS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
18  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
19  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
20  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
21  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
22  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
23  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  *
25  *----------------------------------------------------------------------------
26  */
27 
28 #ifndef __SOP_CopRaster_h__
29 #define __SOP_CopRaster_h__
30 
31 #include <UT/UT_String.h>
32 #include <IMG/IMG_Raster.h>
33 #include <SOP/SOP_Node.h>
34 
35 namespace HDK_Sample {
36 class SOP_CopRaster : public SOP_Node
37 {
38 public:
39  static OP_Node *myConstructor(OP_Network*, const char *, OP_Operator*);
41 
42  /// This static methods is used to build a menu for the UI.
43  static void buildColorMenu(void *data, PRM_Name *, int,
44  const PRM_SpareData *, const PRM_Parm *);
45 
46 protected:
47  SOP_CopRaster(OP_Network*, const char *, OP_Operator*);
48  virtual ~SOP_CopRaster();
49 
50  virtual OP_ERROR cookMySop(OP_Context &context);
51 
52  virtual bool updateParmsFlags();
53 
54  /// Splits a full cop2 path into the net and node portions.
55  void splitCOP2Path(const char *path, UT_String &net,
56  UT_String &node);
57 
58  /// This takes a path relative to this node, and finds the full path
59  /// that should be sent to the CopResolver. Flag dependent is set if
60  /// an interest in the flag of the destination should be set.
61  int getFullCOP2Path(const char *relpath, UT_String &fullpath,
62  int &flagdependent);
63 
64 private:
65  int updateRaster(fpreal t);
66 
67  UT_String myCurrentName;
68  int myPrevXRes;
69  int myPrevYRes;
70  IMG_Raster myRaster;
71 
72  int USEDISK()
73  { return evalInt("usedisk", 0, 0); }
74  void COPPATH(UT_String &str, fpreal t)
75  { evalString(str, "coppath", 0, t); }
76  void CPLANE(UT_String &str, fpreal t)
77  { evalString(str, "copcolor", 0, t); }
78  void FNAME(UT_String &str, fpreal t)
79  { evalString(str, "file", 0, t); }
80  fpreal COPFRAME(fpreal t)
81  { return evalFloat("copframe", 0, t); }
82 };
83 } // End HDK_Sample namespace
84 
85 #endif
static PRM_Template myTemplateList[]
Definition: SOP_CopRaster.h:40
GLsizei const GLchar *const * path
Definition: glcorearb.h:3340
fpreal evalFloat(int pi, int vi, fpreal t) const
UT_ErrorSeverity
Definition: UT_Error.h:25
static void buildColorMenu(void *data, PRM_Name *, int, const PRM_SpareData *, const PRM_Parm *)
This static methods is used to build a menu for the UI.
void splitCOP2Path(const char *path, UT_String &net, UT_String &node)
Splits a full cop2 path into the net and node portions.
virtual OP_ERROR cookMySop(OP_Context &context)
void evalString(UT_String &val, int pi, int vi, fpreal t) const
SOP_CopRaster(OP_Network *, const char *, OP_Operator *)
Definition: SOP_CopRaster.C:89
GLboolean * data
Definition: glcorearb.h:130
virtual bool updateParmsFlags()
static OP_Node * myConstructor(OP_Network *, const char *, OP_Operator *)
Definition: SOP_CopRaster.C:84
double fpreal
Definition: SYS_Types.h:270
exint evalInt(int pi, int vi, fpreal t) const
int getFullCOP2Path(const char *relpath, UT_String &fullpath, int &flagdependent)