Cortex  10.0.0-a4
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
IECoreHoudini::SceneCacheNode< BaseType > Class Template Reference

#include <SceneCacheNode.h>

+ Inheritance diagram for IECoreHoudini::SceneCacheNode< BaseType >:

Public Types

enum  Space { World, Path, Local, Object }
 
enum  GeometryType { Cortex, Houdini, BoundingBox, PointCloud }
 

Public Member Functions

 SceneCacheNode (OP_Network *net, const char *name, OP_Operator *op)
 
std::string getFile () const
 convenience methods for the common parameters;
 
void setFile (std::string file)
 
std::string getPath () const
 
void setPath (const IECore::SceneInterface *scene)
 
Space getSpace () const
 
void setSpace (Space space)
 
GeometryType getGeometryType () const
 
void setGeometryType (GeometryType type)
 
void getAttributeFilter (UT_String &filter) const
 
void getAttributeFilter (UT_StringMMPattern &filter) const
 
void setAttributeFilter (const UT_String &filter)
 
void getAttributeCopy (UT_String &value) const
 
void setAttributeCopy (const UT_String &value)
 
void getTagFilter (UT_String &filter) const
 
void getTagFilter (UT_StringMMPattern &filter) const
 
void setTagFilter (const UT_String &filter)
 
bool getTagGroups () const
 
void setTagGroups (bool tagGroups)
 
void getShapeFilter (UT_String &filter) const
 
void getShapeFilter (UT_StringMMPattern &filter) const
 
void setShapeFilter (const UT_String &filter)
 
void getFullPathName (UT_String &name) const
 
void setFullPathName (const UT_String &name)
 
void referenceParent (const char *parmName)
 
IECore::ConstSceneInterfacePtr scene () const
 
double time (OP_Context context) const
 

Static Public Member Functions

static int sceneParmChangedCallback (void *data, int index, float time, const PRM_Template *tplate)
 
static int reloadButtonCallback (void *data, int index, float time, const PRM_Template *tplate)
 
static void buildRootMenu (void *data, PRM_Name *menu, int maxSize, const PRM_SpareData *, const PRM_Parm *)
 
static void buildTagFilterMenu (void *data, PRM_Name *menu, int maxSize, const PRM_SpareData *, const PRM_Parm *)
 
static void buildShapeFilterMenu (void *data, PRM_Name *menu, int maxSize, const PRM_SpareData *, const PRM_Parm *)
 
static bool tagged (const IECore::SceneInterface *scene, const UT_StringMMPattern &filter)
 Determine if the given scene has any tag matching the filter.
 

Static Public Attributes

static PRM_Name pFile
 
static PRM_Name pRoot
 
static PRM_Name pSpace
 
static PRM_Name pReload
 
static PRM_Name pGeometryType
 
static PRM_Name pAttributeFilter
 
static PRM_Name pAttributeCopy
 
static PRM_Name pTagFilter
 
static PRM_Name pTagGroups
 
static PRM_Name pShapeFilter
 
static PRM_Name pFullPathName
 
static PRM_Default rootDefault
 
static PRM_Default spaceDefault
 
static PRM_Default filterDefault
 
static PRM_Default geometryTypeDefault
 
static PRM_ChoiceList rootMenu
 
static PRM_ChoiceList spaceList
 
static PRM_ChoiceList geometryTypeList
 
static PRM_ChoiceList attributeCopyMenu
 
static PRM_ChoiceList tagFilterMenu
 
static PRM_ChoiceList shapeFilterMenu
 

Protected Member Functions

Imath::M44d worldTransform (const std::string &fileName, const std::string &path, double time)
 Computes the worldTransform for the specified path.
 
virtual void sceneChanged ()
 
bool ensureFile (std::string &file)
 get the file and ensure it is a valid SCC
 
void descendantNames (const IECore::SceneInterface *scene, std::vector< std::string > &descendants)
 get a breadth first list of all descendant paths
 
void objectNames (const IECore::SceneInterface *scene, std::vector< std::string > &objects)
 get a depth first list of all object names
 
void createMenu (PRM_Name *menu, const std::vector< std::string > &values)
 utility method to build a UI menu from one of the previous lists
 

Static Protected Member Functions

static IECore::ConstSceneInterfacePtr scene (const std::string &fileName, const std::string &path)
 
static std::string getFullScenePath (const IECore::SceneInterface *scene)
 get the full path to a scene including the name
 
static OP_TemplatePair * buildMainParameters ()
 
static OP_TemplatePair * buildOptionParameters ()
 

Protected Attributes

bool m_loaded
 
boost::tribool m_static
 
IECore::MurmurHash m_hash
 

Detailed Description

template<typename BaseType>
class IECoreHoudini::SceneCacheNode< BaseType >

Abstract class for using an IECore::SceneCache in Houdini. Derived nodes will do something useful with the data.

Member Function Documentation

template<typename BaseType>
IECore::ConstSceneInterfacePtr IECoreHoudini::SceneCacheNode< BaseType >::scene ( ) const

Access point to the actual SceneCache. All users should only access the cache using this method, in order to avoid re-opening existing files.

template<typename BaseType>
static IECore::ConstSceneInterfacePtr IECoreHoudini::SceneCacheNode< BaseType >::scene ( const std::string &  fileName,
const std::string &  path 
)
staticprotected

Access point to the actual SceneCache. All derived classes should only access the cache using this method, in order to avoid re-opening existing files.

template<typename BaseType>
virtual void IECoreHoudini::SceneCacheNode< BaseType >::sceneChanged ( )
protectedvirtual

Called from setFile, setPath, and when either the file or path parameters are changed. The default implementation sets m_loaded false. Derived nodes may override this if convenient.

Reimplemented in IECoreHoudini::OBJ_SceneCacheNode< BaseType >, IECoreHoudini::OBJ_SceneCacheNode< OBJ_Geometry >, IECoreHoudini::OBJ_SceneCacheNode< OBJ_SubNet >, IECoreHoudini::SOP_SceneCacheTransform, and IECoreHoudini::SOP_SceneCacheSource.

template<typename BaseType>
double IECoreHoudini::SceneCacheNode< BaseType >::time ( OP_Context  context) const

Return the SceneCache time represented by this Houdini Context. This is not a simple getTime() call, because Houdini treats time starting at Frame 1, while SceneCaches treat time starting at Frame 0. Note that this function should really be adjusting time by 1/fps used at cache time, but we don't have access to that, so we assume that Houdini's current frame rate is representative.


The documentation for this class was generated from the following file: