/usr/include/opencollada/COLLADAFramework/COLLADAFWObject.h is in opencollada-dev 0.1.0~20140703.ddf8f47+dfsg1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | /*
Copyright (c) 2008-2009 NetAllied Systems GmbH
This file is part of COLLADAFramework.
Licensed under the MIT Open Source License,
for details please see LICENSE file or the website
http://www.opensource.org/licenses/mit-license.php
*/
#ifndef __COLLADAFW_OBJECT_H__
#define __COLLADAFW_OBJECT_H__
#include "COLLADAFWPrerequisites.h"
#include "COLLADAFWUniqueId.h"
namespace COLLADAFW
{
/** Base class of all classes that can be referenced in the model.*/
class Object
{
public:
virtual ~Object(){};
/** Returns the class id of the object.*/
virtual ClassId getClassId() const =0;
/** Returns the unique id of the object.*/
virtual const UniqueId& getUniqueId() const = 0;
};
/** Base class of all classes that can be referenced in the model.*/
template<ClassId classId>
class ObjectTemplate : public Object
{
private:
/** The unique id of the object.*/
UniqueId mUniqueId;
public:
ObjectTemplate(ObjectId objectId, FileId fileId) : mUniqueId(classId, objectId, fileId) {}
ObjectTemplate(const UniqueId& uniqueId) : mUniqueId(uniqueId) {}
virtual ~ObjectTemplate() {}
/** Returns the unique id of the object.*/
const UniqueId& getUniqueId() const { return mUniqueId; }
/** Returns the class id of the object.*/
static ClassId ID() { return classId; }
/** Returns the class id of the object.*/
ClassId getClassId() const { return ID(); }
/** Returns the object id of the object.*/
ObjectId getObjectId() const { return mUniqueId.getObjectId(); }
/** Returns the file id of the object.*/
FileId getFileId() const { return mUniqueId.getFileId(); }
protected:
/** Sets the unique id of the object.*/
void setUniqueId ( const UniqueId& uniqueId )
{
COLLADABU_ASSERT( uniqueId.getClassId() == classId );
mUniqueId = uniqueId;
}
};
template<class ObjectType>
ObjectType* objectSafeCast(Object* object)
{
if ( !object)
return 0;
if ( object->getClassId() == ObjectType::ID() )
return (ObjectType*)object;
else
return 0;
}
template<class ObjectType>
const ObjectType* objectSafeCast(const Object* object)
{
if ( !object)
return 0;
if ( object->getClassId() == ObjectType::ID() )
return (ObjectType*)object;
else
return 0;
}
} // namespace COLLADAFW
#endif // __COLLADAFW_OBJECT_H__
|