7 #ifndef PXR_BASE_VT_WRAP_ARRAY_EDIT_H
8 #define PXR_BASE_VT_WRAP_ARRAY_EDIT_H
12 #include "pxr/base/vt/arrayEdit.h"
13 #include "pxr/base/vt/arrayEditBuilder.h"
17 #include "pxr/external/boost/python/class.hpp"
23 template <
class ArrayEdit>
26 using namespace pxr_boost::python;
27 using namespace Vt_WrapArray;
30 using ElementType =
typename ArrayEdit::ElementType;
32 const std::string
name = GetVtArrayName<Array>() +
"Edit";
34 class_<ArrayEdit>(
name.c_str())
35 .def(init<ArrayEdit const &>())
39 +[](ArrayEdit
const &
self) {
42 .def(
"IsIdentity", &ArrayEdit::IsIdentity)
44 +[](ArrayEdit
const &
self, ArrayEdit
const &weaker) {
45 return self.ComposeOver(weaker);
48 +[](ArrayEdit
const &
self,
Array const &weaker) {
49 return self.ComposeOver(weaker);
54 class_<Builder>((
name +
"Builder").
c_str())
55 .def(
"Write", &Builder::Write,
56 (
arg(
"elem"),
arg(
"index")), return_self<>())
57 .def(
"WriteRef", &Builder::WriteRef,
58 (
arg(
"srcIndex"),
arg(
"dstIndex")), return_self<>())
59 .def(
"Insert", &Builder::Insert,
60 (
arg(
"elem"),
arg(
"index")), return_self<>())
61 .def(
"InsertRef", &Builder::InsertRef,
62 (
arg(
"srcIndex"),
arg(
"dstIndex")), return_self<>())
63 .def(
"Prepend", &Builder::Prepend,
64 (
arg(
"elem")), return_self<>())
65 .def(
"PrependRef", &Builder::PrependRef,
66 (
arg(
"srcIndex")), return_self<>())
67 .def(
"Append", &Builder::Append, (
arg(
"elem")), return_self<>())
68 .def(
"AppendRef", &Builder::AppendRef,
69 (
arg(
"srcIndex")), return_self<>())
70 .def(
"EraseRef", &Builder::EraseRef, (
arg(
"index")), return_self<>())
72 +[](Builder &
self, int64_t
size) {
75 (
arg(
"size")), return_self<>())
77 +[](Builder &
self, int64_t size, ElementType
const &
fill) {
78 self.MinSize(size, fill);
79 }, (
arg(
"size"),
arg(
"fill")), return_self<>())
80 .def(
"MaxSize", &Builder::MaxSize, (
arg(
"size")), return_self<>())
82 +[](Builder &
self, int64_t size) {
84 }, (
arg(
"size")), return_self<>())
86 +[](Builder &
self, int64_t size, ElementType
const &fill) {
87 self.SetSize(size, fill);
88 }, (
arg(
"size"),
arg(
"fill")), return_self<>())
89 .def(
"FinalizeAndReset", &Builder::FinalizeAndReset)
90 .def(
"Optimize", +[](ArrayEdit edit) {
91 return Builder::Optimize(std::move(edit));
93 .staticmethod(
"Optimize")
97 #define VT_WRAP_ARRAY_EDIT(unused, elem) \
98 VtWrapArrayEdit<VtArrayEdit< VT_TYPE(elem) > >();
102 #endif // PXR_BASE_VT_WRAP_ARRAY_EDIT_H
PXR_NAMESPACE_OPEN_SCOPE void VtWrapArrayEdit()
#define PXR_NAMESPACE_OPEN_SCOPE
auto arg(const Char *name, const T &arg) -> detail::named_arg< Char, T >
OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER class IMF_EXPORT_TEMPLATE_TYPE Array
GLuint const GLchar * name
#define PXR_NAMESPACE_CLOSE_SCOPE
OIIO_UTIL_API const char * c_str(string_view str)