KernelCAD Documentation

DInsight Home
Skip Navigation Links. Skip Navigation LinksHome Page > KernelCAD Components > Interfaces > I3DBugger
I3DBugger Interface

II3DBugger Interface


The interface is used to display intermediate 3D objects created by an application  in 3D window on 3D Debugger in Debug mode. See 3D Debugger for details. I3DBugger can be queried from IDIObjGenerator

See also: 3DBugger Sample, 3D Debugger, Interface List

HRESULT DumpObject(IUnknown* representation, int objectHash, VARIANT_BOOL writeThrough, VARIANT_BOOL transient)


representation - [in] ISection implemented by the object to be dumped or dump a model

objectHash - [in] a (preferably) unique number identifying the object or 0

writeThrough - [in] True if the object must be displayed immediately

transient - [in] True if the object is to be displayed for a short period of time (until the next call to BeginDump) only


The methods adds object or set of objects identified by representation to scene displayed in 3DBugger window. If actual type of representation is ISection the object and its children will be added to the scene. If actual type of representation is IModel all objects in the model will be added to the scene.

objectHash can be any number identifying the represented object or 0. Debugger uses it to decide whether it is a new object or an update of a previously dumped one

writeThrough is provided for performance. When there are several objects to be dumped one after another it is better to set this parameter to true in the last call to DumpObject() only.

transient parameter set to true is used to display temporary objects, which change frequently, for example in some calculation loop.



The method displays in debugger window all objects added to the debug scene since the last Dump() or since the last call to DumpObject() with writeThrough parameter set to true.

This method is normally used to flash the stream into debug window to make sure all objects added without writeThrough parameter of the DumpObject set to true are displayed.

HRESULT AttachStream(char* name)


name - [in] name of the stream


Call this method to change the current stream ("Dump" by default) to stream name. If the stream does not exist it is created and opened. If stream name has been created before on the computer the persistent data saved in the stream will be used on start of debugging. An existent stream can be cleared using BeginSession or Action > "Delete All" menu option in Model explorer of 3DBugger or other delete commands of 3DBugger.

When application writes into more than one stream this method is used to switch (probably frequently) between the streams.

HRESULT CloseStream(char* name)


name - [in] name of a stream opened with AttachStream or "Default"


Use the method to free (significant) memory associated with the stream. Persistent data of the stream will be preserved on the hard disk.

HRESULT BeginSession()


Removes all objects from the current stream and clears the debugger window. This is programmatic equivalent of  Action > "Delete All" menu option in Model explorer of 3DBugger.

HRESULT BeginDump()


Removes any transient objects from the debug stream.



After a call to BlockAllDumps(false) all Dump*() calls are ignored. This is useful to allow the program run freely in some situations