#ifndef RIFRAME3_H
#define RIFRAME3_H

#ifndef   RIONB3
#include <RiONB3.H>
#endif


/************************************************************
 * 3D frame class declaration
 ************************************************************/

class RiFrame3 {
public:

				// constructors
    RiFrame3();
    RiFrame3(const RiVector3 &o, const RiONB3 &uvw);
    RiFrame3(const RiFrame3& f);

				// member access
    RiVector3 Origin() const;
    RiONB3 Basis() const;

private:
    
    RiVector3 origin;
    RiONB3 basis;

};

inline RiVector3 RiFrame3::Origin() const { return origin; }
inline RiONB3 RiFrame3::Basis() const { return basis; }

inline RiFrame3::RiFrame3() { }

inline RiFrame3::RiFrame3(const RiVector3 &o, 
                      const RiONB3 &b) : origin(o), basis(b) { }

inline RiFrame3::RiFrame3(const RiFrame3& r) : origin(r.Origin()), basis(r.Basis()) {
}


#endif /* RIFRAME3_H */

