HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GU_Xform.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: GU_Xform.h ( GU Library, C++)
7  *
8  * COMMENTS: OpenCL helpers for transforming attributes by per-point matrices.
9  */
10 
11 #pragma once
12 
13 #include "GU_API.h"
14 
15 #include <CE/CE_Array.h>
16 
17 class CE_Context;
18 
19 namespace GU_Xform
20 {
21 
22 enum class XformAttribType
23 {
24  POINT3,
25  VECTOR3,
26  NORMAL3,
27  HPOINT4,
28  QUAT4,
29  MAT3,
30  MAT4
31 };
32 
33 GU_API void xformAttrib(
34  CE_Context &context,
35  bool recompile,
36  int npts,
37  const cl::Buffer &out_data,
38  const cl::Buffer &in_data,
39  const cl::Buffer &xform,
41  bool keep_length = true,
42  const cl::Buffer *grp = nullptr);
43 
45  CE_Context &context,
46  bool recompile,
47  int nvtx,
48  const cl::Buffer &out_data,
49  const cl::Buffer &in_data,
50  const cl::Buffer &xform,
52  const cl::Buffer &vertex_point,
53  const cl::Buffer &point_xform_index,
54  bool keep_length = true,
55  const cl::Buffer *grp = nullptr);
56 
58  CE_Context &context,
59  bool recompile,
60  int npts,
61  const cl::Buffer &out_xform,
62  const cl::Buffer &in_xform,
63  const cl::Buffer &grp);
64 
66  CE_Context &context,
67  bool recompile,
68  int npts,
69  const cl::Buffer &out_xform,
70  const cl::Buffer &in_xform,
71  const cl::Buffer &grp);
72 
73 } // namespace GU_Xform
GU_API void scatterPointMat4ByGroup(CE_Context &context, bool recompile, int npts, const cl::Buffer &out_xform, const cl::Buffer &in_xform, const cl::Buffer &grp)
GU_API void gatherPointMat4ByGroup(CE_Context &context, bool recompile, int npts, const cl::Buffer &out_xform, const cl::Buffer &in_xform, const cl::Buffer &grp)
GU_API void xformAttrib(CE_Context &context, bool recompile, int npts, const cl::Buffer &out_data, const cl::Buffer &in_data, const cl::Buffer &xform, XformAttribType type, bool keep_length=true, const cl::Buffer *grp=nullptr)
GLint GLint GLsizei GLint GLenum GLenum type
Definition: glcorearb.h:108
#define GU_API
Definition: GU_API.h:14
GU_API void xformVertexAttrib(CE_Context &context, bool recompile, int nvtx, const cl::Buffer &out_data, const cl::Buffer &in_data, const cl::Buffer &xform, XformAttribType type, const cl::Buffer &vertex_point, const cl::Buffer &point_xform_index, bool keep_length=true, const cl::Buffer *grp=nullptr)
GU_API void xform(CE_Context &context, bool recompile, int npts, const cl::Buffer &outPos, const cl::Buffer &inPos, const cl::Buffer &surfacexform, const cl::Buffer *grp=nullptr)
Memory buffer interface.
Definition: cl.hpp:1867
XformAttribType
Definition: GU_Xform.h:22