Class: Raylib::ModelAnimations

Inherits:
Object
  • Object
show all
Defined in:
lib/raylib_helper.rb

Overview

Manages a set of ModelAnimation (ruby raylib original)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeModelAnimations

Returns a new instance of ModelAnimations.



291
292
293
294
295
# File 'lib/raylib_helper.rb', line 291

def initialize
  @anims = nil
  @anim_ptrs = nil
  @framePoses = nil # array of Transform**
end

Instance Attribute Details

#anim_ptrsObject (readonly)

Returns the value of attribute anim_ptrs.



289
290
291
# File 'lib/raylib_helper.rb', line 289

def anim_ptrs
  @anim_ptrs
end

#animsObject (readonly)

Returns the value of attribute anims.



289
290
291
# File 'lib/raylib_helper.rb', line 289

def anims
  @anims
end

Instance Method Details

#anim(index) ⇒ Object



297
# File 'lib/raylib_helper.rb', line 297

def anim(index) = @anims[index]

#anims_countObject



298
# File 'lib/raylib_helper.rb', line 298

def anims_count = @anims.length

#bone_info(anim_index, bone_index) ⇒ Object

Returns BoneInfo.

Returns:

  • BoneInfo



302
303
304
# File 'lib/raylib_helper.rb', line 302

def bone_info(anim_index, bone_index)
  BoneInfo.new(@anims[anim_index][:bones] + bone_index * BoneInfo.size)
end

#bone_transform(frame_pose, bone_index) ⇒ Object

Returns Transform.

Returns:

  • Transform



312
313
314
# File 'lib/raylib_helper.rb', line 312

def bone_transform(frame_pose, bone_index)
  Transform.new(frame_pose.read_pointer + bone_index * Transform.size)
end

#bone_transform_of_frame_pose(anim_index, frame, bone_index) ⇒ Object

Returns Transform.

Returns:

  • Transform



317
318
319
# File 'lib/raylib_helper.rb', line 317

def bone_transform_of_frame_pose(anim_index, frame, bone_index)
  bone_transform(frame_pose(anim_index, frame), bone_index)
end

#cleanupObject



331
332
333
# File 'lib/raylib_helper.rb', line 331

def cleanup
  UnloadAndFreeModelAnimations(@anims, @anim_ptrs)
end

#frame_count(index) ⇒ Object



299
# File 'lib/raylib_helper.rb', line 299

def frame_count(index) = @anims[index][:frameCount]

#frame_pose(index, frame) ⇒ Object

Returns Transform*.

Returns:

  • Transform*



307
308
309
# File 'lib/raylib_helper.rb', line 307

def frame_pose(index, frame)
  @framePoses[index] + frame * FFI::NativeType::POINTER.size # Transform*
end

#setup(fileName) ⇒ Object

Returns self.

Returns:

  • self



322
323
324
325
326
327
328
329
# File 'lib/raylib_helper.rb', line 322

def setup(fileName)
  @anims, @anim_ptrs = LoadAndAllocateModelAnimations(fileName)
  @framePoses = []
  @anims.each do |anim|
    @framePoses << anim[:framePoses]
  end
  self
end