Cortex  10.0.0-a4
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
IECoreMaya::LiveScene Class Reference

#include <LiveScene.h>

+ Inheritance diagram for IECoreMaya::LiveScene:

Public Types

typedef boost::function< bool(const MDagPath &)> HasFn
 
typedef boost::function< IECore::ConstObjectPtr(const MDagPath &)> ReadFn
 
typedef boost::function< IECore::ConstObjectPtr(const MDagPath &, const Name &)> ReadAttrFn
 
typedef boost::function< bool(const MDagPath &, const Name &, int)> HasTagFn
 
typedef boost::function< void(const MDagPath &, NameList &, int)> ReadTagsFn
 
typedef boost::function< void(const MDagPath &, NameList &)> NamesFn
 
typedef boost::function< bool(const MDagPath &, const Name &)> MightHaveFn
 
- Public Types inherited from IECore::SceneInterface
enum  MissingBehaviour { ThrowIfMissing = IndexedIO::ThrowIfMissing, NullIfMissing = IndexedIO::NullIfMissing, CreateIfMissing = IndexedIO::CreateIfMissing }
 
enum  TagFilter { DescendantTag = 1, LocalTag = 2, AncestorTag = 4, EveryTag = DescendantTag | LocalTag | AncestorTag }
 
enum  HashType {
  TransformHash, AttributesHash, BoundHash, ObjectHash,
  ChildNamesHash, HierarchyHash
}
 
typedef IndexedIO::EntryID Name
 
typedef IndexedIO::EntryIDList NameList
 
typedef IndexedIO::EntryIDList Path
 
- Public Types inherited from IECore::RunTimeTyped
typedef RefCounted BaseClass
 A typedef for the class this class derives from. All RunTimeTyped classes define this typedef.
 
- Public Types inherited from IECore::RefCounted
typedef size_t RefCount
 

Public Member Functions

 IE_CORE_DECLARERUNTIMETYPEDEXTENSION (LiveScene, LiveSceneTypeId, IECore::SceneInterface)
 
virtual std::string fileName () const
 Returns the file that this scene is mapped to. Throws exception if there's no file.
 
virtual Name name () const
 Returns the name of the scene location which this instance is referring to. The root path returns "/".
 
virtual void path (Path &p) const
 Returns the tokenized dag path this instance is referring to.
 
virtual Imath::Box3d readBound (double time) const
 
virtual void writeBound (const Imath::Box3d &bound, double time)
 Not currently supported - will throw an exception.
 
virtual IECore::ConstDataPtr readTransform (double time) const
 
virtual Imath::M44d readTransformAsMatrix (double time) const
 
virtual void writeTransform (const IECore::Data *transform, double time)
 Not currently supported - will throw an exception.
 
virtual bool hasAttribute (const Name &name) const
 Convenience method to determine if an attribute exists without reading it.
 
virtual void attributeNames (NameList &attrs) const
 Fills attrs with the names of all attributes available in the current directory.
 
virtual IECore::ConstObjectPtr readAttribute (const Name &name, double time) const
 Returns the attribute value at the given time, which must be equal to the current maya time in seconds.
 
virtual void writeAttribute (const Name &name, const IECore::Object *attribute, double time)
 Not currently supported - will throw an exception.
 
virtual bool hasTag (const Name &name, int filter=SceneInterface::LocalTag) const
 Uses the custom registered tags to return whether a given tag is present in the scene location or not.
 
virtual void readTags (NameList &tags, int filter=SceneInterface::LocalTag) const
 Uses the custom registered tags to list all the tags present in the scene location.
 
virtual void writeTags (const NameList &tags)
 Not currently supported - will throw an exception.
 
virtual bool hasObject () const
 Checks if there are objects in the scene (convertible from Maya or registered as custom objects)
 
virtual IECore::ConstObjectPtr readObject (double time) const
 
virtual IECore::PrimitiveVariableMap readObjectPrimitiveVariables (const std::vector< IECore::InternedString > &primVarNames, double time) const
 
virtual void writeObject (const IECore::Object *object, double time)
 Not currently supported - will throw an exception.
 
virtual void childNames (NameList &childNames) const
 
virtual bool hasChild (const Name &name) const
 Queries weather the named child exists.
 
virtual IECore::SceneInterfacePtr child (const Name &name, MissingBehaviour missingBehaviour=SceneInterface::ThrowIfMissing)
 
virtual IECore::ConstSceneInterfacePtr child (const Name &name, MissingBehaviour missingBehaviour=SceneInterface::ThrowIfMissing) const
 Returns a read-only interface for a child location in the scene.
 
virtual IECore::SceneInterfacePtr createChild (const Name &name)
 
virtual IECore::SceneInterfacePtr scene (const Path &path, MissingBehaviour missingBehaviour=SceneInterface::ThrowIfMissing)
 Returns an object for querying the scene at the given path (full path).
 
virtual IECore::ConstSceneInterfacePtr scene (const Path &path, MissingBehaviour missingBehaviour=SceneInterface::ThrowIfMissing) const
 Returns an object for querying the scene at the given path (full path).
 
virtual void hash (HashType hashType, double time, IECore::MurmurHash &h) const
 Currently raises an exception.
 
- Public Member Functions inherited from IECore::SceneInterface
 IE_CORE_DECLARERUNTIMETYPED (SceneInterface, RunTimeTyped)
 
virtual void path (Path &p) const =0
 Returns the path scene this instance is referring to.
 
virtual bool hasBound () const
 
virtual void attributeNames (NameList &attrs) const =0
 Fills attrs with the names of all attributes available in the current directory.
 
virtual void readTags (NameList &tags, int filter=LocalTag) const =0
 
virtual void writeTags (const NameList &tags)=0
 Adds tags to the current scene location.
 
virtual void childNames (NameList &childNames) const =0
 
virtual SceneInterfacePtr scene (const Path &path, MissingBehaviour missingBehaviour=ThrowIfMissing)=0
 Returns a interface for querying the scene at the given path (full path).
 
virtual ConstSceneInterfacePtr scene (const Path &path, MissingBehaviour missingBehaviour=ThrowIfMissing) const =0
 Returns a const interface for querying the scene at the given path (full path).
 
- Public Member Functions inherited from IECore::RunTimeTyped
 IE_CORE_DECLAREMEMBERPTR (RunTimeTyped)
 
virtual TypeId typeId () const
 
virtual const char * typeName () const
 
virtual bool isInstanceOf (TypeId typeId) const
 
virtual bool isInstanceOf (const char *typeName) const
 
- Public Member Functions inherited from IECore::RefCounted
 IE_CORE_DECLAREMEMBERPTR (RefCounted)
 
void addRef () const
 Add a reference to the current object.
 
void removeRef () const
 Remove a reference from the current object.
 
RefCount refCount () const
 Returns the current reference count.
 

Static Public Member Functions

static void registerCustomObject (HasFn hasFn, ReadFn readFn)
 
static void registerCustomAttributes (NamesFn namesFn, ReadAttrFn readFn)
 
static void registerCustomAttributes (NamesFn namesFn, ReadAttrFn readFn, MightHaveFn mightHaveFn)
 
static void registerCustomTags (HasTagFn hasFn, ReadTagsFn readFn)
 
- Static Public Member Functions inherited from IECore::SceneInterface
static SceneInterfacePtr create (const std::string &path, IndexedIO::OpenMode mode)
 
static std::vector< std::string > supportedExtensions (IndexedIO::OpenMode modes=IndexedIO::Read|IndexedIO::Write|IndexedIO::Append)
 
static void pathToString (const Path &p, std::string &path)
 Converts a internal Path to a path-like string. The root path results in "/".
 
static void stringToPath (const std::string &path, Path &p)
 
- Static Public Member Functions inherited from IECore::RunTimeTyped
static TypeId staticTypeId ()
 Returns the TypeId for this class, without needing an instance.
 
static const char * staticTypeName ()
 Returns the type name for this class, without needing an instance.
 
static TypeId baseTypeId ()
 
static const char * baseTypeName ()
 
static bool inheritsFrom (TypeId typeId)
 Returns true if this class inherits from the specified type.
 
static bool inheritsFrom (const char *typeName)
 Returns true if this class inherits from the specified type.
 
static bool inheritsFrom (TypeId type, TypeId baseType)
 Returns true if type inherits from baseType.
 
static bool inheritsFrom (const char *typeName, const char *baseTypeName)
 Returns true if typeName inherits from baseTypeName.
 
static TypeId baseTypeId (TypeId typeId)
 Returns the base type of the given type, or InvalidTypeId if no such base exists.
 
static const std::vector< TypeId > & baseTypeIds (TypeId typeId)
 
static const std::set< TypeId > & derivedTypeIds (TypeId typeId)
 
static TypeId typeIdFromTypeName (const char *typeName)
 
static const char * typeNameFromTypeId (TypeId typeId)
 
static void registerType (TypeId derivedTypeId, const char *derivedTypeName, TypeId baseTypeId)
 Allows external modules to register their own type ids.
 

Protected Types

typedef tbb::mutex Mutex
 
- Protected Types inherited from IECore::SceneInterface
typedef SceneInterfacePtr(* CreatorFn) (const std::string &, IndexedIO::OpenMode)
 
- Protected Types inherited from IECore::RunTimeTyped
typedef std::map< TypeId, TypeIdBaseTypeRegistryMap
 
typedef std::map< TypeId, std::vector< TypeId > > BaseTypesRegistryMap
 
typedef std::map< TypeId, std::set< TypeId > > DerivedTypesRegistryMap
 
typedef tbb::spin_rw_mutex Mutex
 
typedef std::map< TypeId, std::string > TypeIdsToTypeNamesMap
 
typedef std::map< std::string, TypeIdTypeNamesToTypeIdsMap
 

Protected Member Functions

 LiveScene (const MDagPath &p, bool isRoot=false)
 
virtual LiveScenePtr duplicate (const MDagPath &p, bool isRoot=false) const
 

Protected Attributes

MDagPath m_dagPath
 
bool m_isRoot
 

Static Protected Attributes

static Mutex s_mutex
 
- Static Protected Attributes inherited from IECore::RunTimeTyped
static Mutex g_baseTypeIdsMutex
 
static Mutex g_derivedTypeIdsMutex
 

Additional Inherited Members

- Static Public Attributes inherited from IECore::SceneInterface
static const NamerootName
 Constant name assigned to the root location "/".
 
static const Path & rootPath
 Utility variable that can be used anytime you want to refer to the root path in the Scene.
 
static const NamevisibilityName
 Name of the visibility attribute.
 
- Static Protected Member Functions inherited from IECore::SceneInterface
static CreatorMap & fileCreators ()
 
static void registerCreator (const std::string &extension, IndexedIO::OpenMode modes, CreatorFn f)
 
- Static Protected Member Functions inherited from IECore::RunTimeTyped
static BaseTypeRegistryMap & baseTypeRegistry ()
 
static DerivedTypesRegistryMap & derivedTypesRegistry ()
 
static BaseTypesRegistryMap & completeBaseTypesRegistry ()
 
static DerivedTypesRegistryMap & completeDerivedTypesRegistry ()
 
static void derivedTypeIdsWalk (TypeId typeId, std::set< TypeId > &)
 
static TypeIdsToTypeNamesMap & typeIdsToTypeNames ()
 
static TypeNamesToTypeIdsMap & typeNamesToTypeIds ()
 

Detailed Description

A class for navigating a maya scene. Each LiveScene instance maps to a specific transform in a scene, uniquely identified by it's dag path. Shapes are interpreted as objects living on their parent - eg a scene with the objects |pSphere1 and |pSphere1|pSphereShape1 in it will map to a LiveScene at "/", with a child called "pSphere1", with a MeshPrimitive as its object, and no children. This interface currently only supports read operations, which can only be called with the current maya time in seconds. For example, if you're currently on frame 1 in your maya session, your scene's frame rate is 24 fps, and you want to read an object from your LiveScene instance, you must call LiveSceneInstance.readObject( 1.0 / 24 ), or it will throw an exception.

Member Function Documentation

virtual IECore::SceneInterfacePtr IECoreMaya::LiveScene::child ( const Name name,
MissingBehaviour  missingBehaviour = SceneInterface::ThrowIfMissing 
)
virtual

Returns an object for the specified child location in the scene. If the child does not exist then it will behave according to the missingBehavior parameter. May throw and exception, may return a NULL pointer, or may create the child (if that is possible). Bounding boxes will be automatically propagated up from the children to the parent as it is written.

Implements IECore::SceneInterface.

virtual void IECoreMaya::LiveScene::childNames ( NameList &  childNames) const
virtual

Queries the names of any existing children of path() within the scene.

virtual IECore::SceneInterfacePtr IECoreMaya::LiveScene::createChild ( const Name name)
virtual

Returns a writable interface to a new child. Throws an exception if it already exists. Bounding boxes will be automatically propagated up from the children to the parent as it is written.

Implements IECore::SceneInterface.

Referenced by IECoreMaya.FnSceneShape::expandOnce().

virtual LiveScenePtr IECoreMaya::LiveScene::duplicate ( const MDagPath &  p,
bool  isRoot = false 
) const
protectedvirtual

calls the constructor for a specific dag path. Derived classes can override this so their child() and scene() methods can return instances of the derived class

virtual Imath::Box3d IECoreMaya::LiveScene::readBound ( double  time) const
virtual

Returns the local bounding box of this node at the specified point in time, which must be equal to the current maya time in seconds.

Implements IECore::SceneInterface.

virtual IECore::ConstObjectPtr IECoreMaya::LiveScene::readObject ( double  time) const
virtual

Reads the object stored at this path in the scene at the given time - may return 0 when no object has been stored. Time must be equal to the current maya time in seconds

Implements IECore::SceneInterface.

virtual IECore::PrimitiveVariableMap IECoreMaya::LiveScene::readObjectPrimitiveVariables ( const std::vector< IECore::InternedString > &  primVarNames,
double  time 
) const
virtual

Reads primitive variables from the object of type Primitive stored at this path in the scene at the given time. Raises exception if it turns out not to be a Primitive object.

Implements IECore::SceneInterface.

virtual IECore::ConstDataPtr IECoreMaya::LiveScene::readTransform ( double  time) const
virtual

Returns the local transform of this node at the specified point in time, which must be equal to the current maya time in seconds.

Implements IECore::SceneInterface.

virtual Imath::M44d IECoreMaya::LiveScene::readTransformAsMatrix ( double  time) const
virtual

Returns the transform of this node at the specified point in time as a matrix.

Implements IECore::SceneInterface.


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