IModel Interface
- GetEntityCount
- GetEntity
- Save
- Update
- GetModelPath
- GetItemCount
- GetItem
See also IModel2, Interface List,
Patch Programming Tutorial,
MiniCAD Sample
HRESULT GetEntityCount(int *pnCount)
Parameters
pnCount - [out] pointer to an
integer variable
which will receive the number of objects in the model.
Returns
- S_OK in case of
success.
Remarks:
The method returns number of top-level objects (entities) in the model.
HRESULT GetEntity(int index, ISection **ppIEntity)
Parameters
index
- [in] zero-based index of the object.
ppIEntity - [out] returned pointer to the
interface.
Return Values
- S_OK in case of
success.
-
- DISP_E_BADINDEX - if index is greater than or equal to the number of
objects in the model
-
- Remarks:
-
- Returns pointer to ISection Interface of the index--th top-level object in the
model. Each interface obtained with a call to this method must be released
with a call to Release() method of the obtained interface, when it is no
longer needed.
HRESULT Save(char* szFilePath)
Parameters
szFilePath -[in] path of the model file.
Return Values
- S_OK in case of success.
-
DISP_E_PARAMNOTOPTIONAL - if szFilePath is NULL.
-
ERROR_FILE_NOT_FOUND - if there was a failure during saving
the file.
-
- Remarks
-
- Returns pointer to ISection Interface of the index-th object in the
model. Call Release() on the obtained interface when you have finished to use
it.
HRESULT Update()
Return Values
S_OK in case of success.
DI_E_INVALIDGEOMETRY - In case the most recent changes where not
accepted because they make the geometry of the model invalid.
definition of DI_E_INVALIDGEOMETRY can be found in file DIError.h of Samples\Include folder of the
installation directory.
- Remarks:
This method is equivalent to UpdateSurface
of the DG Kernel control with the exception that it does not redraw the
control's window automatically. To redraw the window, some method of the
particular environment like System.Windows.Forms.Control.Update in .NET or
CWnd::Invalidate() and CWnd::UpdateWindow() in MFC has to be called.
See MiniCAD sample
- The method recalculates the surface of the model after any changes to
parameters of the
model. This method or UpdateSurface
above has to be called after a sequence or a single modification of
the models parameters, which affect shape of the object. Most commonly it is
done after
call(s) to one of SetParam methods of
IElement or IElem interface.
In contrast, for example, object movements with I3DObject do not change internal geometry
of the object, so the Update method does not have to be called.
A valid sequence of modifications should involve only one modification
per parameter. Before making another modification to the same geometrical parameter Update
or UpdateSurface
has to be called. For example
iElemPoint.SetParam(0, 0.5);
iElemPoint.SetParam(1, 0.9);
iModel.Update();
is a valid sequence, but
iElemPoint.SetParam(0, 0.5);
iElemPoint.SetParam(0, 0.9);
iModel.Update();
is not.
Note that this method is costly in terms of computational load, so it is recommended
to call it once per logically complete sequence of user input.
HRESULT GetModelPath(string *path)
Parameters
szFilePath - [in] path of the
model file.
Return Values
S_OK in case of success.
Remarks
Returns full resolved model path. This method is particularly useful when
the ModelPath property of the DG Kernel component is either not full or has special
prefixes
See Cloud sample for an example
HRESULT GetItemCount(int* count)
Returns count of top-level non-geometric scene items, which are not entities,
i.e. which implement IItem, but not
ISection interface
HRESULT GetItem(int index, IItem** iItem)
Returns index-th top-level scene item.
|