I found the DRange3D struct in MicroStationAPI help. It's grown from a simple data container in V8i to a useful class in CONNECT.
In previous versions of the API, we had to do something like this to initialise a DVector3D to max/min values of points...
void findHighLow ( DPoint3d *low, DPoint3d *high, DVector3d *range ) { //handle the low end if (range->org.x <low->x) low->x = range->org.x; if (range->org.y < low->y) low->y = range->org.y; if (range->org.z <low->z) low->z = range->org.z; //handle the high end if (range->end.x > high->x) high->x = range->end.x; if (range->end.y > high->y) high->y = range->end.y; if (range->end.z > high->z) high->z = range->end.z; return ; }
Does this have the same effect in CONNECT?
void findHighLow ( DRange3d& range DPoint3d const& low, DPoint3d const& high, ) { range = DRange3d::NullRange (); range.Extend (low); range.Extend (high); }
If I've misinterpreted that Extend method, could someone explain what it does?