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.



344
345
346
347
348
# File 'lib/raylib_helper.rb', line 344

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.



342
343
344
# File 'lib/raylib_helper.rb', line 342

def anim_ptrs
  @anim_ptrs
end

#animsObject (readonly)

Returns the value of attribute anims.



342
343
344
# File 'lib/raylib_helper.rb', line 342

def anims
  @anims
end

Instance Method Details

#anim(index) ⇒ Object



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

def anim(index) = @anims[index]

#anims_countObject



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

def anims_count = @anims.length

#bone_info(anim_index, bone_index) ⇒ Object

Returns BoneInfo.

Returns:

  • BoneInfo



355
356
357
# File 'lib/raylib_helper.rb', line 355

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



365
366
367
# File 'lib/raylib_helper.rb', line 365

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



370
371
372
# File 'lib/raylib_helper.rb', line 370

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

#cleanupObject



384
385
386
# File 'lib/raylib_helper.rb', line 384

def cleanup
  UnloadAndFreeModelAnimations(@anims, @anim_ptrs)
end

#frame_count(index) ⇒ Object



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

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

#frame_pose(index, frame) ⇒ Object

Returns Transform*.

Returns:

  • Transform*



360
361
362
# File 'lib/raylib_helper.rb', line 360

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

#setup(fileName) ⇒ Object

Returns self.

Returns:

  • self



375
376
377
378
379
380
381
382
# File 'lib/raylib_helper.rb', line 375

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