Is it possible to use Unity3d to develop an advanced 2d and 3d data editor?
There is a need for importing 3d point, line and mesh data from some custom format files, then editing parts of these data values either manually or programmatically, including deleting and adding data, then save the result into new file of some custom format. The actual dataformats are not that complicated, but the actual data are not known beforehand of application build and they need to be edited and saved back to file/db.
It seems to me that this may well not be possible in Unity3d, but as it would be great to use Unity3d extreme qualities I would like to have this confirmed.
It is possible, but ir's a lot of work. You would have some better support if you integrate your "custom editor" into the Unity editor because in the editor environment you have a lot additional tools available which you don't have in the runtime. However if you do the fileparsing yourself, it is possible thanks to the Mesh class.
edit
Well now the question is what do you mean with advanced? Good 3d- modelling tools have month or years of developing time. It might be simpler to write a simple converter tool to convert your custom format to a common format (.3ds, .x, .dxf) so you can edit it in any 3D-tool.
The ‘advanced’ challenge lies more in that the data sets are large, unit size in the 100s of MB and total file IO in some session in the order of 1-100 GB’s.
This may well depend on the ability of the Mesh class.
Say we define a 3d surface with a 10000 by 20000 grid size and where x, y and z values are simple mathematical functions of the indexes. Then if the coordinates, normal vectors, colors etc can be calculated on the fly (in shaders, say), then the actual physical size of the mesh object will be small even though the number of triangles are supersized. If the Mesh class does not support such things, then I am afraid that this is not what I need.
“>100 GB of geometry data? It would even take ages to load that amount of data into memory (and i guess you don’t have 100GB RAM?!?). I’m a bit confused about what you actually want to do :)”
-Lots of loading and unloading from external storage depending of what sections of data to be looked at as well as distance to data. Data in binary compressed form may well be an order of magnitude less than as represented in mesh class, that would depend on the ability to customize the mesh class etc.