From: Brian G. <br...@ge...> - 2006-08-08 21:20:41
|
On Aug 4, 2006, at 11:27 AM, Radu Bogdan Rusu wrote: > Ok, looks better, but we have to watch out that we do not add & > transmit unnecessary data > for some apps. But ok, color+position is a nice combination, so why > not. :) I've just committed Raymond's version, with some modifications of my own. Specifically, 3dpointcloud becomes pointcloud3d in all the names. It's more in keeping with our existing interface and structure names, and it's generally better to avoid beginning a name with a number. The new interface gets code 61. It currently has one data subtype and accompanying structure defined, for which the XDR marshaling function is entered in libplayerxdr/functiontable.c. Feel free to submit modifications as the interface evolves. brian. > Raymond Sheh wrote: >> Radu Bogdan Rusu wrote: >>> Should we go ahead and commit it as it is then? We can always add >>> more >>> stuff to it later. >>> >> Should this be done with or without a separate pointcloud element >> structure? I'm beginning to agree with Brian that it would be >> neater if >> we had to have a separate structure for each point (rather than >> parallel >> arrays) given the way things work now ... hows this for a suggestion? >> Sorry about any convention breaks - as I mentioned I'm not that >> familiar >> with the conventions used in the server. >> >> ============== >> >> <snip> >> >> /** @brief 3D Pointcloud element structure >> An element as stored in a 3D pointcloud, containing a 3D position >> plus >> other corresponding information. */ >> typedef struct player_3dpointcloud_element >> { >> player_point_3d_t point; >> player_color_t color; >> /** Add other data here as necessary */ >> /** Storage area for generic user data (temperature, >> intensity, >> polygon association, flags, etc.) >> Probably best left until when variable sized >> structures are >> fully implemented so we don't unnecessarily allocate huge >> amounts >> of data per point */ >> // uint32_t data_count; // uchar data >> [PLAYER_3DPOINTCLOUD_MAX_DATA] >> } player_3dpointcloud_element_t; >> >> /** @brief Data: Get cloud (@ref PLAYER_3DPOINTCLOUD_DATA_STATE) >> The basic 3dcloudpoint data packet. */ >> typedef struct player_3dpointcloud >> { >> uint32_t points_count; >> player_3dpointcloud_element_t points >> [PLAYER_3DPOINTCLOUD_MAX_POINTS]; >> } player_3dpointcloud_t; >> >> <snip> >> ============== |