/********************************************************************/ /* Copyright (c) 2017 System fugen G.K. and Yuzi Mizuno */ /* All rights reserved. */ /********************************************************************/ #if !defined( __MGIGESPD196_H__) #define __MGIGESPD196_H__ #include "mg/Position.h" #include "mg/Unit_vector.h" #include "mg/Sphere.h" #include "mgiges/IgesIfstream.h" #include "mgiges/IgesPD.h" ///MGIgesPD196 is the class for Iges parameter data type 196(sphere surface). class MGIgesPD196: public MGIgesPD{ public: // Constructors. /// Constructs an object of class MGIgesPD196. MGIgesPD196(MGIgesDirectoryEntry* DEpointer=0); ///Construct PD196, supplying each DE pointer data. MGIgesPD196( int locationDE, double radius, int axisDE=0, int refdirDE=0 ); ///Destructor; ~MGIgesPD196(){;}; ///Get the sphere center(LOCATION) into origin. void getCenter(const MGIgesIfstream& ifs, MGPosition& center)const; ///Get the plane normal into nromal. void getAxis(const MGIgesIfstream& ifs, MGUnit_vector& axis)const; ///Get the sphere reference direction(REFDIR) into refdir. void getRefdir(const MGIgesIfstream& ifs, MGVector& refdir)const; double getRadius()const{return m_radius;}; ///Read in parameter data from string stream data. void read_in( char pDelimeter, std::istringstream& pdstream ); ///Write out this PD as MGIgesParamLine's(into plines). ///Except for string data, one integer or double data is output ///into one MGIgesParamLine, not striding over more than one line. ///Only when string data is output(to Holleris string), the data ///may stride over more than one lines. ///plines[i] for 0<=i& plines ///0, ///<=0 if no axis direction. int m_refdirDE;///0, ///<=0 if no reference direction. }; #endif // __MGIGESPD196_H__