Further work on target camera animation support in both loaders. Some general animation problems in both formats remaining, too. Added GenUVCoords and TransformUV-steps (see ML). The latter has been fully implemented, test file are there. GenUVCoords is a dummy for the moment. Boost workaround for shared_array. Further work on the documentation. Updated material system (see ML). Bug fixing in the AC loader, lights are now supported, too. git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@243 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
85 lines
1.2 KiB
C++
85 lines
1.2 KiB
C++
|
|
#ifndef __AI_BOOST_SCOPED_ARRAY_INCLUDED
|
|
#define __AI_BOOST_SCOPED_ARRAY_INCLUDED
|
|
|
|
#ifndef BOOST_SCOPED_ARRAY_HPP_INCLUDED
|
|
|
|
#include <assert.h>
|
|
|
|
namespace boost {
|
|
|
|
// small replacement for boost::scoped_array
|
|
template <class T>
|
|
class scoped_array
|
|
{
|
|
public:
|
|
|
|
// provide a default construtctor
|
|
scoped_array()
|
|
: ptr(0)
|
|
{
|
|
}
|
|
|
|
// construction from an existing heap object of type T
|
|
scoped_array(T* _ptr)
|
|
: ptr(_ptr)
|
|
{
|
|
}
|
|
|
|
// automatic destruction of the wrapped object at the
|
|
// end of our lifetime
|
|
~scoped_array()
|
|
{
|
|
delete[] ptr;
|
|
}
|
|
|
|
inline T* get()
|
|
{
|
|
return ptr;
|
|
}
|
|
|
|
inline operator T*()
|
|
{
|
|
return ptr;
|
|
}
|
|
|
|
inline T* operator-> ()
|
|
{
|
|
return ptr;
|
|
}
|
|
|
|
inline void reset (T* t = 0)
|
|
{
|
|
delete[] ptr;
|
|
ptr = t;
|
|
}
|
|
|
|
T & operator[](std::ptrdiff_t i) const
|
|
{
|
|
return ptr[i];
|
|
}
|
|
|
|
void swap(scoped_array & b)
|
|
{
|
|
std::swap(ptr, b.ptr);
|
|
}
|
|
|
|
private:
|
|
|
|
// encapsulated object pointer
|
|
T* ptr;
|
|
|
|
};
|
|
|
|
template<class T>
|
|
inline void swap(scoped_array<T> & a, scoped_array<T> & b)
|
|
{
|
|
a.swap(b);
|
|
}
|
|
|
|
} // end of namespace boost
|
|
|
|
#else
|
|
# error "scoped_array.h was already included"
|
|
#endif
|
|
#endif // __AI_BOOST_SCOPED_ARRAY_INCLUDED
|