KernelCAD Documentation

DInsight Home
Skip Navigation Links.
Start page
Quick Start
Installation
Overview of the software
What is new
Collapse KernelCAD ModelsKernelCAD Models
Collapse KernelCAD ComponentsKernelCAD Components
KernelCAD Control
KernelCAD .NET Control
Methods and Properties
Menu
Model Explorer
Birds Eye View
Programming
Direct User Access
Direct Operations
Interface Queries
Printing Support
Data Types
Modes of KernelCAD Control
DIObjectGenerator class
Properties
FlatObjectArray Poperty
Context
64 bit development
Dual Mode
Initialisation Context
Overlay Editor
Memory Management
Input validation
Collapse Advanced functionalityAdvanced functionality
Collapse InterfacesInterfaces
Alphabetical list
I3DGrid
I3DBugger
I3Dpt
IAxiBase
IAxis
IBoolSection
IBoolSectionEx
IBoundary
IColor
IConstraint
IData
IDiffSurface_KC
IDIFont
IDraw
IDrawUtil
IDraw2
IElem
IElement
IKCLine
ILightSource
ILocation
ILocationEx
IMaterial
IMetrics
IMetrics2
IModel
IModel2
IModelEx
IPatch
IKCPathCollisionDetector
IProfiles
IPropertyArray
IPropertyArray2
IStdShape
IStrip
ISurface
IText
ITexture
ITransform
IUnknown
Collapse Open Cascade TechnologyOpen Cascade Technology
Collapse DataData
Collapse MovementMovement
Collapse FramesFrames
Collapse Oriented ObjectsOriented Objects
Collapse SectionsSections
Collapse GeneralGeneral
Collapse Topological InterfacesTopological Interfaces
Collapse Viewing InterfacesViewing Interfaces
Collapse Lines And CurvesLines And Curves
Collapse Symmetry InterfacesSymmetry Interfaces
Collapse Clipping plane interfacesClipping plane interfaces
Collapse AlgorithmsAlgorithms
Collapse 2D Geometry2D Geometry
Collapse Programming Samples and TutorialsProgramming Samples and Tutorials
Collapse OverviewOverview
Collapse DeploymentDeployment
Collapse .NET Samples.NET Samples
Collapse C++ SamplesC++ Samples
Collapse Visual Basic SamplesVisual Basic Samples
Collapse Delphi SamplesDelphi Samples
Collapse 3D Debugger3D Debugger
Collapse DeploymentDeployment
Licensing
Model Viewer
Open C++ Source
Technical Support
Skip Navigation LinksHome Page > KernelCAD Components > Interfaces > IModel2
IModel2 Interface

IModel2 Interface

GetCurrentObject
SetCurrentObject
RemoveAll
Add
FindItem
AddNewItem
Display
Remove
GetSceneItem
FindSection
Detach
JoinCurrentSection
JoinToCurrent
AddCopy
DeleteAll
GetName
SetName
AddItem

This interface gives access to the "Current Object" property  maintained by models in KernelCAD software. The current object is identified by its ISection interface. The current object is highlighted in 3D with red component added to colour of the object, when this is requested via IView2.Enable. In Modal mode the current object can be moved by the user with the mouse (See IViewModal).

See also IViewModal, Interface List


HRESULT GetCurrentObject(ISection ** iObject)

Parameters

 iObject - [out, retval] - ISection. interface implemented by the current object or NULL if there is no current object sin the model

Returns

S_OK in case of success.
Remarks:

This method returns reference to ISection interface implemented by the current (active / selected) object or NULL if there is no current object in the model


HRESULT SetCurrentObject(ISection *iObject)

Parameters

iObject - [in] - ISection interface implemented by an object from the model or NULL

Return Values

S_OK in case of success.
Remarks:

iObject parameter supplied for the method must be ISection interface implemented by an object in the current model. Call this method to make the object current. If iObject is NULL (null, Nothing, etc) the model will not have a current object.


HRESULT RemoveAll()

Remarks:

Removes all objects from the model.


HRESULT Add(ISection *object)

Parameters

object - [in] - ISection interface implemented by an object to be added to the model. 

Remarks:

Adds object to the model as the last top level section. The method is a shortcut for normal procedure of adding objects with IArray ot IArray2 queried form IModel. object is normally created with IDIObjGenerator or moved from anther model.


HRESULT FindItem(KCSceneItemInfo* description, IItem **item)

Parameters

description - [in] - KCSceneItemInfo structure with search parameters

item - [out, retval] The found scene item or null if the item was not found. See remarks
Remarks:

Searches the model for a scene item. Query specific interfaces like ISection fromthe returned IItem to get access to details of the object


HRESULT AddNewItem(EObjectType eType, IItem **item)

Parameters

eType - [in] - specifies type of the object to be added to the model. 

item - [out, retval] - The new scene item
Remarks:

Adds a new object of the specified type to the model as the last top level section. The method is a shortcut for normal procedure of adding objects with IArray ot IArray2 and IDIObjGenerator.


HRESULT Display(IUnknown* object, VARIANT_BOOL bPersistent, IItem **item)

Parameters

object - [in] - An object to be added to the scene

bPersistent - [in] Indicates weather the object should be stored with the model during the next save operation

item - [out, retval] - The added scene item, which wrapa (represents) the abstract object
Remarks:

Some abstract geometric objects like free form lines can be added quickly to the model by wrapping it with a section, which is a scene item. This methods checks weather this possible for the type of obejct and returns the wrapper item. Frequently the item is actually a section so ISection can be queried form item. The item can be removed with a Remove() method call below.


HRESULT Remove(IItem **item)

Parameters

item - [in] - An object to be removed from the object

Remarks:

Removes the item or section from the model


HRESULT GetSceneItem(int index, IItem **item)

Parameters

index - [in] - Index into array of all items of the model

item - [out, retval] - The returned item


HRESULT FindSection(ISection *iObject, VARIANT_BOOL searchChildren, [out,retval] int* indexFound);

Parameters

iObject - [in] The object to find

searchChildren - [in] If true childrent are include in the search. See remarks

indexFound - [out, retval] - Index of the found object or -1 if not found

Remarks:

Finds iObject in the model. If searchChildren is false only top level objects are searched. If searchChildren is true indexFound will be index of the top-level object which has iObject as its descendant.


HRESULT Detach(IItem *item)

Remarks:

Moves the item to the top level in the hierachy. In other words removes the item from array if its siblings and makes it the last top-level object. The method has no effect it the item was a top-level object already.


JoinCurrentSection(ISection *iObjectTo, VARIANT_BOOL changeCurrent)

Remarks:

Makes the surrent section the last child of iObjectTo. Has not effect if there is not current section in the model. The current section and iObjectTo must not be descendants of one another


HRESULT JoinToCurrent(IItem *iItem, VARIANT_BOOL newItem)

Remarks:

Makes iItem the last child of the surrent section. Has not effect if there is not current section in the model. The current section and iItem must not be descendants of one another


HRESULT AddCopy(ISection *obj, ISection** newCopy)

Parameters

obj - [in] - The obejct to be copied

newCopy - [out, retval] - The newly created and added copy

Remarks:

Adds a replica of obj to the model and returned as the return value.


DeleteAll(EObjectType eType, VARIANT_BOOL includeChildren, int* countDeleted)

If includeChildren is true deletes all objects of the specified type in the model. Otherwise only the specified top-level objects are deleted


HRESULT GetName(BSTR *pbstrName)

Returns name of the model


HRESULT SetName(char* name)

Modifies name of the model


HRESULT AddItem(IItem *item)

Adds the item as the last top level object. item can be also implemented by a section (queried via ISection)