HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GT_PrimCamera.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: GT_PrimCamera.h ( GT Library, C++)
7  *
8  * COMMENTS:
9  */
10 
11 #ifndef __GT_PrimCamera__
12 #define __GT_PrimCamera__
13 
14 #include "GT_API.h"
15 #include "GT_Primitive.h"
16 #include "GT_GEOPrimCollect.h"
17 #include "GT_Transform.h"
18 
19 #include <UT/UT_CameraParms.h>
20 
21 /// @brief A Camera Primitive
22 /// @endcode
24 {
25 public:
26  /// Default constructor
28  const UT_CameraParms &settings,
29  const GT_AttributeListHandle &attribs);
30  /// Destructor
31  ~GT_PrimCamera() override;
32 
33  const char *className() const override { return "GT_PrimCamera"; }
34 
35  GT_PrimitiveHandle doSoftCopy() const override
36  { return new GT_PrimCamera(*this); }
37 
38  GT_PrimitiveHandle doHarden() const override;
39 
40  bool refine(GT_Refine &refiner, const GT_RefineParms *parms) const override;
41 
42  /// @{
43  /// Methods defined on GT_Primitive
44  void enlargeBounds(UT_BoundingBox boxes[],
45  int nsegments) const override;
46  int getMotionSegments() const override;
47  int64 getMemoryUsage() const override;
48  /// @}
49 
50  /// @{
51  /// Methods defined on GT_Primitive
52  int getPrimitiveType() const override
53  { return GT_PRIM_CAMERA; }
54  /// @}
55 
57  { return myAttribs; }
58 
59  bool updateGeoPrim(const GU_ConstDetailHandle &dtl,
60  const GT_RefineParms &refine) override;
61 
62  const UT_CameraParms &getParms() const { return mySettings; }
63 
64 protected:
65 
66 private:
67 
68  void buildPerspectiveFrustum(GU_Detail *gdp) const;
69 
70  void buildOrthoFrustum(GU_Detail *gdp) const;
71 
72  UT_CameraParms mySettings;
73  GT_AttributeListHandle myAttribs;
74 };
75 
76 #endif
virtual int getMotionSegments() const =0
virtual bool updateGeoPrim(const GU_ConstDetailHandle &dtl, const GT_RefineParms &parms)
update any cached data for geometry and its attributes
virtual bool refine(GT_Refine &refiner, const GT_RefineParms *parms=NULL) const
#define GT_API
Definition: GT_API.h:13
A Camera Primitive .
Definition: GT_PrimCamera.h:23
int getPrimitiveType() const override
Definition: GT_PrimCamera.h:52
CE_API bool refine(const CE_OSDRefinement &topo, const CE_OSDEvaluator &eval, const cl::Buffer &coarse, CE_FloatArray &refined_data)
const char * className() const override
Definition: GT_PrimCamera.h:33
long long int64
Definition: SYS_Types.h:116
const UT_CameraParms & getParms() const
Definition: GT_PrimCamera.h:62
const GT_AttributeListHandle & getUniformAttributes() const override
Definition: GT_PrimCamera.h:56
GA_API const UT_StringHolder transform
The base class for all GT primitive types.
Definition: GT_Primitive.h:43
virtual GT_PrimitiveHandle doHarden() const
virtual int64 getMemoryUsage() const =0
Processes primitives generated by refinement process.
Definition: GT_Refine.h:20
GA_API const UT_StringHolder parms
GT_PrimitiveHandle doSoftCopy() const override
Definition: GT_PrimCamera.h:35
virtual void enlargeBounds(UT_BoundingBox boxes[], int nsegments) const =0