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.



243
244
245
246
247
# File 'lib/raylib_helper.rb', line 243

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.



241
242
243
# File 'lib/raylib_helper.rb', line 241

def anim_ptrs
  @anim_ptrs
end

#animsObject (readonly)

Returns the value of attribute anims.



241
242
243
# File 'lib/raylib_helper.rb', line 241

def anims
  @anims
end

Instance Method Details

#anim(index) ⇒ Object



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

def anim(index) = @anims[index]

#anims_countObject



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

def anims_count = @anims.length

#bone_info(anim_index, bone_index) ⇒ Object

Returns BoneInfo.

Returns:

  • BoneInfo



254
255
256
# File 'lib/raylib_helper.rb', line 254

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



264
265
266
# File 'lib/raylib_helper.rb', line 264

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



269
270
271
# File 'lib/raylib_helper.rb', line 269

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

#cleanupObject



283
284
285
# File 'lib/raylib_helper.rb', line 283

def cleanup
  UnloadAndFreeModelAnimations(@anims, @anim_ptrs)
end

#frame_count(index) ⇒ Object



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

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

#frame_pose(index, frame) ⇒ Object

Returns Transform*.

Returns:

  • Transform*



259
260
261
# File 'lib/raylib_helper.rb', line 259

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

#setup(fileName) ⇒ Object

Returns self.

Returns:

  • self



274
275
276
277
278
279
280
281
# File 'lib/raylib_helper.rb', line 274

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