8#ifndef OPENVDB_HOUDINI_SOP_NODEVDB_HAS_BEEN_INCLUDED
9#define OPENVDB_HOUDINI_SOP_NODEVDB_HAS_BEEN_INCLUDED
11#include <houdini_utils/ParmFactory.h>
14#include <SOP/SOP_Node.h>
16#include <UT/UT_DSOVersion.h>
43 std::string mNativeName;
69 const GA_PrimitiveGroup*
matchGroup(GU_Detail&,
const std::string& pattern);
70 const GA_PrimitiveGroup*
matchGroup(
const GU_Detail&,
const std::string& pattern);
93 std::string
evalStdString(
const char* name, fpreal time,
int index = 0)
const;
104 virtual OP_ERROR
cookVDBSop(OP_Context&) {
return UT_ERROR_NONE; }
115 const char* oldName,
const char* newName);
147 OP_Context& context, GU_Detail **pgdp, GU_DetailHandle& gdh,
bool clean =
true);
184 bool isSourceStealable(
const unsigned index, OP_Context& context)
const;
202namespace node_info_text
220 template<
typename Gr
idType>
Helper class to simplify operator registration.
Definition: ParmFactory.h:377
OpFlavor
Definition: ParmFactory.h:379
Parameter template list that is always terminated.
Definition: ParmFactory.h:74
Abstract base class for typed grids.
Definition: Grid.h:78
Use this class to register a new OpenVDB operator (SOP, POP, etc.)
Definition: SOP_NodeVDB.h:31
OpenVDBOpFactory & setNativeName(const std::string &name)
Set the name of the equivalent native operator as shipped with Houdini.
OpenVDBOpFactory(const std::string &english, OP_Constructor, houdini_utils::ParmList &, OP_OperatorTable &, houdini_utils::OpFactory::OpFlavor=SOP)
Construct an OpFactory that on destruction registers a new OpenVDB operator type.
Base class from which to derive OpenVDB-related Houdini SOPs.
Definition: SOP_NodeVDB.h:52
void getNodeSpecificInfoText(OP_Context &, OP_NodeInfoParms &) override
OP_ERROR duplicateSourceStealable(const unsigned index, OP_Context &context)
Steal the geometry on the specified input if possible, instead of copying the data.
std::string evalStdString(const char *name, fpreal time, int index=0) const
Evaluate a string-valued parameter as an STL string.
const GA_PrimitiveGroup * matchGroup(GU_Detail &, const std::string &pattern)
Retrieve a group from a geometry detail by parsing a pattern (typically, the value of a Group paramet...
void fillInfoTreeNodeSpecific(UT_InfoTree &, const OP_NodeInfoTreeParms &) override
SOP_NodeVDB(OP_Network *, const char *, OP_Operator *)
openvdb::Vec3R evalVec3R(const char *name, fpreal time) const
Evaluate a vector-valued parameter.
OP_ERROR duplicateSourceStealable(const unsigned index, OP_Context &context, GU_Detail **pgdp, GU_DetailHandle &gdh, bool clean=true)
Steal the geometry on the specified input if possible, instead of copying the data.
const SOP_NodeVerb * cookVerb() const override
Return this node's registered verb.
void resolveRenamedParm(PRM_ParmList &obsoleteParms, const char *oldName, const char *newName)
Transfer the value of an obsolete parameter that was renamed to the parameter with the new name.
openvdb::Vec3f evalVec3f(const char *name, fpreal time) const
Evaluate a vector-valued parameter.
const GA_PrimitiveGroup * matchGroup(const GU_Detail &, const std::string &pattern)
Retrieve a group from a geometry detail by parsing a pattern (typically, the value of a Group paramet...
openvdb::Vec2R evalVec2R(const char *name, fpreal time) const
Evaluate a vector-valued parameter.
virtual OP_ERROR cookVDBSop(OP_Context &)
To facilitate compilable SOPs, cookMySop() is now final. Instead, either override SOP_NodeVDB::cookVD...
Definition: SOP_NodeVDB.h:104
~SOP_NodeVDB() override=default
openvdb::Vec2i evalVec2i(const char *name, fpreal time) const
Evaluate a vector-valued parameter.
OP_ERROR cookMyGuide1(OP_Context &) override
openvdb::Vec3i evalVec3i(const char *name, fpreal time) const
Evaluate a vector-valued parameter.
OP_ERROR cookMySop(OP_Context &) override final
To facilitate compilable SOPs, cookMySop() is now final. Instead, either override SOP_NodeVDB::cookVD...
Vec3< int > Vec3i
Definition: NanoVDB.h:1176
Vec2< int32_t > Vec2i
Definition: Vec2.h:534
void registerGridSpecificInfoText(const std::string &gridType, ApplyGridSpecificInfoText callback)
Register an info text callback to a specific grid type.
void(*)(std::ostream &, const openvdb::GridBase &) ApplyGridSpecificInfoText
Definition: SOP_NodeVDB.h:207
Definition: AttributeTransferUtil.h:34