📄 hnrect.cc
字号:
/* * HnRect.cc * * DO NOT EDIT THIS FILE! * * This file is automatically generated by obj2ptr. * 1997/06/02 21:19:16 */#include "HnRect.hh"#include "HnRectObj.hh"/* * HnRect */const HnRect HnRect::null;HnRectnew_HnRect(int dimension){ HnRectObj *_obj; HnRect _ptr; _obj = new HnRectObj(dimension); if(_obj->hasFailed()) return HnRect::null; _ptr.assign(_obj); return _ptr;}HnRectnew_HnRect(const HnRect &rect){ HnRectObj *_obj; HnRect _ptr; _obj = new HnRectObj(rect); if(_obj->hasFailed()) return HnRect::null; _ptr.assign(_obj); return _ptr;}intHnRect::getDimension(void) const{ return getObject()->getDimension();}const HnRange &HnRect::getRange(int index) const{ return getObject()->getRange(index);}voidHnRect::setRange(double min, HnRange::EndType minType, double max, HnRange::EndType maxType, int index){ getObject()->setRange(min, minType, max, maxType, index);}voidHnRect::setRange(const HnRange &range, int index){ getObject()->setRange(range, index);}HnBoolHnRect::equals(const HnRect &ptr) const { if(isInvalid()) { if(ptr.isInvalid()) return HnTRUE; else return HnFALSE; } else { if(ptr.isInvalid()) return HnFALSE; else return getObject()->equals(ptr); }}HnBoolHnRect::overlaps(const HnRect &rect) const{ return getObject()->overlaps(rect);}HnBoolHnRect::includes(const HnRect &rect) const{ return getObject()->includes(rect);}HnBoolHnRect::includes(const HnPoint &point) const{ return getObject()->includes(point);}doubleHnRect::getMaxWidth(void) const{ return getObject()->getMaxWidth();}doubleHnRect::getMargin(void) const{ return getObject()->getMargin();}HnPointHnRect::getCenterPoint(void) const{ return getObject()->getCenterPoint();}HnRectHnRect::getOverlappingRect(const HnRect &rect) const{ return getObject()->getOverlappingRect(rect);}HnRectHnRect::getBoundingRect(const HnRect &rect) const{ return getObject()->getBoundingRect(rect);}doubleHnRect::getDiagonal(void) const{ return getObject()->getDiagonal();}doubleHnRect::getVolume(void) const{ return getObject()->getVolume();}doubleHnRect::getMinDistance(const HnPoint &point) const{ return getObject()->getMinDistance(point);}doubleHnRect::getMaxDistance(const HnPoint &point) const{ return getObject()->getMaxDistance(point);}HnStringHnRect::toString(void) const { if(isInvalid()) return "HnRect::null"; else return getObject()->toString();}HnRectHnRect::getBoundingRect(const HnRectArray &rects){ return HnRectObj::getBoundingRect(rects);}/* * HnRectArrayObj */#include <stdlib.h>#include "HnString.hh"class HnRectArrayObj: public HnObject {private: HnRect **array; int len; int size; static const int initialSize; void initialize(void) { array = NULL; len = 0; size = 0; } void dispose(void) { if(array != NULL) { int i; for(i=0; i<len; i++) delete array[i]; free(array); } array = NULL; len = 0; size = 0; } void ensureSize(int requiredSize);public: /* constructor and destructor */ HnRectArrayObj(void); HnRectArrayObj(const HnRectArray &ptr); ~HnRectArrayObj(void); /* clear, append, insert, and remove */ void clear(void); void append(const HnRect &ptr); void append(const HnRectArray &ptr); void insert(const HnRect &ptr, int index); HnRect remove(int index); void set(const HnRect &ptr, int index); void swap(int i, int j); /* length and get */ int length(void) const { return len; } HnRect &get(int i) const; /* utilities */ HnBool equals(const HnRectArray &ptr) const; int indexOf(const HnRect &ptr, int fromIndex) const; HnString toString(void) const;};const int HnRectArrayObj::initialSize = 4;static void *xrealloc(void *ptr, size_t size){ if(ptr == NULL) { if((ptr = malloc(size)) == NULL) HnSysError("malloc"); } else { if((ptr = realloc(ptr, size)) == NULL) HnSysError("realloc"); } return ptr;}voidHnRectArrayObj::ensureSize(int requiredSize){ int oldSize, newSize; if((oldSize = size) >= requiredSize) return; if((newSize = oldSize) == 0) newSize = initialSize; while(newSize < requiredSize) newSize *= 2; array = (HnRect **)xrealloc(array, sizeof(HnRect *) * newSize); size = newSize;}HnRectArrayObj::HnRectArrayObj(void){ initialize();}HnRectArrayObj::HnRectArrayObj(const HnRectArray &ptr){ initialize(); clear(); append(ptr);}HnRectArrayObj::~HnRectArrayObj(void){ dispose();}voidHnRectArrayObj::clear(void){ dispose();}voidHnRectArrayObj::append(const HnRect &ptr){ ensureSize(len + 1); array[len] = new HnRect(ptr); len ++;}voidHnRectArrayObj::append(const HnRectArray &ptr){ int i; ensureSize(len + ptr.length()); for(i=0; i<ptr.length(); i++) append(ptr[i]);}voidHnRectArrayObj::insert(const HnRect &ptr, int index){ if(index < 0 || index > len) HnAbort("HnRectArrayObj::insert: " "index is out of bounds."); ensureSize(len + 1); memmove(array + index + 1, array + index, sizeof(HnRect *) * (len - index)); array[index] = new HnRect(ptr); len ++;}HnRectHnRectArrayObj::remove(int index){ HnRect ptr = get(index); if(index < 0 || index >= len) HnAbort("HnRectArrayObj::remove: " "index is out of bounds."); delete array[index]; memmove(array + index, array + index + 1, sizeof(HnRect *) * (len - index - 1)); len --; return ptr;}voidHnRectArrayObj::set(const HnRect &ptr, int index){ if(index < 0 || index >= len) HnAbort("HnRectArrayObj::set: " "index is out of bounds."); delete array[index]; array[index] = new HnRect(ptr);}voidHnRectArrayObj::swap(int i, int j){ if(i < 0 || i >= len || j < 0 || j >= len) HnAbort("HnRectArrayObj::swap: index is out of bounds."); HnRect *ptr = array[i]; array[i] = array[j]; array[j] = ptr;}HnRect &HnRectArrayObj::get(int i) const { if(i < 0 || i >= len) HnAbort("HnRectArrayObj::get: index is out of bounds."); return *array[i];}HnBoolHnRectArrayObj::equals(const HnRectArray &ptr) const { int i; if(len != ptr.length()) return HnFALSE; for(i=0; i<len; i++) { if(!array[i]->equals(ptr[i])) return HnFALSE; } return HnTRUE;}intHnRectArrayObj::indexOf(const HnRect &ptr, int fromIndex) const{ int i; for(i=fromIndex; i<len; i++) { if(array[i]->equals(ptr)) return i; } return -1;}HnStringHnRectArrayObj::toString(void) const{ HnString string; string = "[ "; for(int i=0; i<len; i++) { if(i != 0) string += ", "; string += array[i]->toString(); } string += " ]"; return string;}/* * HnRectArray */const HnRectArray HnRectArray::null;HnRectArraynew_HnRectArray(void){ HnRectArray ptr; ptr.assign(new HnRectArrayObj()); return ptr;}HnRectArraynew_HnRectArray(const HnRectArray &value){ HnRectArray ptr; if(value.isInvalid()) ptr.assign(NULL); else ptr.assign(new HnRectArrayObj(value)); return ptr;}voidHnRectArray::clear(void){ getObject()->clear();}voidHnRectArray::append(const HnRect &ptr){ getObject()->append(ptr);}voidHnRectArray::append(const HnRectArray &ptr){ getObject()->append(ptr);}voidHnRectArray::insert(const HnRect &ptr, int index){ getObject()->insert(ptr, index);}HnRectHnRectArray::remove(int index){ return getObject()->remove(index);}voidHnRectArray::set(const HnRect &ptr, int index){ getObject()->set(ptr, index);}voidHnRectArray::swap(int i, int j){ getObject()->swap(i, j);}intHnRectArray::length(void) const{ return getObject()->length();}HnRect &HnRectArray::get(int i) const{ return getObject()->get(i);}HnBoolHnRectArray::equals(const HnRectArray &ptr) const{ return getObject()->equals(ptr);}intHnRectArray::indexOf(const HnRect &ptr, int fromIndex) const{ return getObject()->indexOf(ptr, fromIndex);}HnStringHnRectArray::toString(void) const{ return getObject()->toString();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -