// Filename: pointerDataAttribute.I // Created by: jason (07Aug00) // //////////////////////////////////////////////////////////////////// #include "pointerDataTransition.h" #include template TypeHandle PointerDataAttribute::_type_handle; template PtrType* PointerDataAttribute::_null_ptr = (PtrType*)NULL; //////////////////////////////////////////////////////////////////// // Function: PointerDataAttribute::Constructor // Access: Public // Description: //////////////////////////////////////////////////////////////////// template INLINE PointerDataAttribute:: PointerDataAttribute() : _ptr(_null_ptr) { } //////////////////////////////////////////////////////////////////// // Function: PointerDataAttribute::Constructor // Access: Public // Description: //////////////////////////////////////////////////////////////////// template INLINE PointerDataAttribute:: PointerDataAttribute(PtrType* ptr) : _ptr(ptr) { } //////////////////////////////////////////////////////////////////// // Function: PointerDataAttribute::Copy Constructor // Access: Public // Description: //////////////////////////////////////////////////////////////////// template INLINE PointerDataAttribute:: PointerDataAttribute(const PointerDataAttribute ©) : NodeAttribute(copy), _ptr(copy._ptr) { } //////////////////////////////////////////////////////////////////// // Function: PointerDataAttribute::Copy Assignment Operator // Access: Public // Description: //////////////////////////////////////////////////////////////////// template INLINE void PointerDataAttribute:: operator = (const PointerDataAttribute ©) { NodeAttribute::operator = (copy); _ptr = copy._ptr; } //////////////////////////////////////////////////////////////////// // Function: PointerDataAttribute::set_value // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// template void PointerDataAttribute:: set_value(PtrType* ptr) { _ptr = ptr; } //////////////////////////////////////////////////////////////////// // Function: PointerDataAttribute::get_value // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// template PtrType* PointerDataAttribute:: get_value() const { return _ptr; } //////////////////////////////////////////////////////////////////// // Function: NumericDataAttribute::get_handle // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// template TypeHandle PointerDataAttribute:: get_handle() const { return PointerDataTransition::get_class_type(); } //////////////////////////////////////////////////////////////////// // Function: PointerDataAttribute::output // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// template void PointerDataAttribute:: output(ostream &out) const { out << (void*)_ptr << endl; } //////////////////////////////////////////////////////////////////// // Function: PointerDataAttribute::write // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// template void PointerDataAttribute:: write(ostream &out, int indent_level) const { indent(out, indent_level) << (void*)_ptr << endl; } /////////////////////////////////////////////////////////////////// // Function: PointerDataAttribute::internal_compare_to // Access: Protected, Virtual // Description: //////////////////////////////////////////////////////////////////// template int PointerDataAttribute:: internal_compare_to(const NodeAttribute *other) const { const PointerDataAttribute *ot; DCAST_INTO_R(ot, other, false); if (_ptr != ot->_ptr) { return (_ptr > ot->_ptr) ? 1 : -1; } return 0; }