So the question is I am going to use Ogre3D as the rendering engine for our 3D software, I am not sure if I need to use the engine as it is vs writing a wrapper for the parts I want to use, what are the pros cons of each way ?
Ogre3D is already a wrapper/abstraction for OpenGL/DirectX. Adding another wrapper on top of that might be overkill, unless you will write a completely other rendering engine that will replace the functionality you used from Ogre. It's hard to judge, since I don't know how much of the Ogre API you're going to use.
Ogre3D already works for Linux/PC/Mac/iOS and apparently Google Native Client (which will probably also work on Android).
Generally there are situations where a wrapper might be a good idea (Gajet makes some good points) but in your current situation I'd rather invest some time to get Ogre3D running on all your target platforms. Maybe you'll have to write some additional code to achieve that, but I think it's probably less than writing a wrapper that works with different engines. And if you happen to be able to port Ogre3D to another platform, it would be a great service to the community.
writing a wrapper will help you in some ways:
but there are also some drawbacks: