Gets the Model3DGroup for frameNo. No The frameNo can also be a not integer value to display model between frames - for example frameNo = 1.5 will get the model as it it in the middle between 2st and 3nd frame.
Namespace:
Ab3dAssembly: Ab3d.Reader3ds (in Ab3d.Reader3ds)
Version: 4.2.0.0 (4.2.0.0)
Syntax
| C# |
|---|
public Model3DGroup GetFrame( double frameNo, Viewport3D viewport ) |
| Visual Basic (Declaration) |
|---|
Public Function GetFrame ( _ frameNo As Double, _ viewport As Viewport3D _ ) As Model3DGroup |
| Visual C++ |
|---|
public: Model3DGroup^ GetFrame( double frameNo, Viewport3D^ viewport ) |
Parameters
- frameNo
- Type: System..::.Double
frameNo
- viewport
- Type: System.Windows.Controls..::.Viewport3D
viewport where the Model3DGroup is shown
Return Value
returns the Model3DGroup for frameNo
Remarks
The Reader3ds can also read the animation data from a 3ds file. It is possible to get the Model3DGroup object for each frame.
Note:
Do not expect too much from this version - currently only simple animations are supported. Camera and light animation is not supported (you can move the object instead). Also only simple linear interpolation is used to calculate the data between key frames. Be careful with rotation - because angle interpolation is used changes of rotation axis is not supported.
Examples
First you have to create a new instance of Reader3ds, read the file and than you can use the GetFrame method:
CopyC#
Reader3ds newReader3ds; newReader3ds = new Reader3ds(); newReader3ds.ReadFile("c:\\models\\simple_animation.3ds"); for (int frameNo=0; frameNo<newReader3ds.FramesCount; frameNo++) { newReader3ds.GetFrame(frameNo, Viewport1); System.Threading.Thread.Sleep(250); // 4 frames per second }