Home 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)
Parametersitem - [in] - An object to be removed from the object
- Remarks:
Removes the item or section from the model
HRESULT GetSceneItem(int index, IItem **item)
Parametersindex
- [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)
Parametersobj
- [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)
|