Visualization by Example - A Constructive Visual Component-based Interface for Direct Volume Rendering