2016-03-31 19:15 GMT+02:00 Rakshika Bagavathy <rakshika.bagava...@gmail.com>: ... > I now understand that the base class has the polygonal_mesh structure and we > work with that, but just implement the structure differently for both the > derived classes. Did i understand it right?
I don't think so. The Adapter is a design pattern in the object oriented software development. (BTW, you can develop object oriented in C as well.) There many design decisions are behavior driven. In our case this means to ask: How should polygonal_mesh behave? For example (only "pseudocode"): class polygonal_mesh { virtual int NumberOfFaces(void) = 0; virtual int[3] GetFace(int) = 0; virtual double[3] GetVertex(int) = 0; virtual int AddVertex(double[3]) = 0; virtual int AddFace(int[3]) = 0; virtual RemoveFace(int) = 0; }; Notice that there is no data in polygonal_mesh. As the functions are pure virtual (= 0) there cannot be created an instance of this class. To do this we have to derive, e.g.: class brlcad_bot_polygonal_mesh : public polygonal_mesh { // implement the virtual functions here virtual int NumberOfFaces(void) { return m_data->num_faces; } .... rt_bot_internal* m_data; }: I.e. your algorithm would use polygonal_mesh and you would have to provide the classes brlcad_bot_polygonal_mesh, openscad_polyset_polygonal_mesh, and maybe brlcad_nmg_polygonal_mesh to adapt the different polygonal meshes to your algorithm. However, this is only a raw overview of how the adapter pattern could be used here. To get a full design some more work is necessary. Regards, Daniel ------------------------------------------------------------------------------ Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140 _______________________________________________ BRL-CAD Developer mailing list brlcad-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-devel