PokeFusion/pokemon.py

47 lines
1.4 KiB
Python

import numpy as np
class Pokemon():
def __init__(self, pokemon_type, animal):
self.type = pokemon_type
self.animal = animal
self.scalar = 10
self.x = 8
self.y = 13
self.z = 8
self.cloudpoints = {
'points': None,
'colors': None,
}
self.load_model()
def load_model(self):
self.cloudpoints['points'] = np.load('models/{}_{}/0/points.npy'.format(self.type, self.animal))
self.cloudpoints['colors'] = np.load('models/{}_{}/0/colors.npy'.format(self.type, self.animal))
self.cloudpoints['colors'] = self.cloudpoints['colors'] / 255
self.cloudpoints['colors'] = self.cloudpoints['colors'][:, :3]
def get_position(self):
transform_matrix = np.array([
[self.scalar, 0, 0, 0],
[0, 0, self.scalar, 0],
[0, self.scalar, 0, 0],
[self.x, self.y, self.z, 0]]) # shift (前後, 左右, 高度)
pokemon_points = self.cloudpoints['points']
ones = np.ones((pokemon_points.shape[0], 1))
pokemon_points = np.concatenate([pokemon_points, ones], axis=1)
pokemon_points = pokemon_points @ transform_matrix
pokemon_points = pokemon_points[:, :3]
return pokemon_points
def get_colors(self):
return self.cloudpoints['colors']