HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GEO_MetaPrim.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: GEO library (C++)
7  *
8  * COMMENTS: base class for interface to Tesseara (meta) library
9  *
10  */
11 
12 #ifndef __GEO_MetaPrim_h__
13 #define __GEO_MetaPrim_h__
14 
15 #include "GEO_API.h"
16 #include <iosfwd>
17 #include <UT/UT_Vector3.h>
18 #include <UT/UT_BoundingBox.h>
19 #include <GA/GA_IntrinsicManager.h> // For the inner Registrar class
20 
21 class TS_MetaPrimitive; // Primitive
22 class TS_MetaKernel;
24 
26 {
27 public:
28  GEO_MetaPrim();
29  virtual ~GEO_MetaPrim() {}
30 
31  virtual TS_MetaPrimitive *getNewMetaPrim() const = 0;
32  virtual float density(const UT_Vector3 &pos) const = 0;
33  virtual void getBBox(UT_BoundingBox &bbox) const = 0;
34 
35  bool setMetaKernel(const char *type);
36  const char *getMetaKernel() const;
37  void setWeight(float w) { myWeight = w; }
38  float getWeight() const { return myWeight; }
39 
40 protected:
41  bool saveMetaH9(std::ostream &os, bool binary) const;
42  bool loadMetaH9(UT_IStream &is);
43 
44  float myWeight;
46 };
47 
48 #endif
const GLuint GLenum const void * binary
Definition: glcorearb.h:1924
float myWeight
Definition: GEO_MetaPrim.h:44
#define GEO_API
Definition: GEO_API.h:14
float getWeight() const
Definition: GEO_MetaPrim.h:38
const TS_MetaKernel * myKernel
Definition: GEO_MetaPrim.h:45
void setWeight(float w)
Definition: GEO_MetaPrim.h:37
GLubyte GLubyte GLubyte GLubyte w
Definition: glcorearb.h:857
Definition of a geometric primitive.
type
Definition: core.h:1059
virtual ~GEO_MetaPrim()
Definition: GEO_MetaPrim.h:29