2022-10-25 01:42:30 +02:00
import bge # Bibliothèque Blender Game Engine (BGE)
2022-10-26 06:01:57 +02:00
import cine # Bibliothèque du player 3d d'analyse de cinématique
2022-10-25 01:42:30 +02:00
###############################################################################
# serrbio.py
2022-10-26 06:01:57 +02:00
# @title: Player 3D cinématique de la serrure biométrique
2022-10-25 01:42:30 +02:00
# @project: Blender-EduTech
# @lang: fr
# @authors: Philippe Roy <philippe.roy@ac-grenoble.fr>
# @copyright: Copyright (C) 2020-2022 Philippe Roy
# @license: GNU GPL
#
2022-10-26 06:01:57 +02:00
# Commandes déclenchées par UPBGE pour le modèle de la serrure biométrique
2022-10-25 01:42:30 +02:00
#
# Ce player 3D est un environnement léger et spécifique pour la colorisation des solides d'un mécanisme en mouvement.
# Il sert principalement pour l'apprentissage de la détection des classes d'équivalence d'un mécanisme afin de pouvoir faire sa modélisation cinématique.
#
###############################################################################
# Récupérer la scène 3D
scene = bge . logic . getCurrentScene ( )
###############################################################################
2022-10-26 06:01:57 +02:00
# Mécanisme
2022-10-25 01:42:30 +02:00
###############################################################################
2022-10-26 06:01:57 +02:00
objects = [ ' Coffre ' , ' Poignee ' , ' Carre ' , ' Noix ' , ' Plaque ' , ' Tetiere ' , ' Pene ' ]
2023-07-13 02:56:15 +02:00
objects_anim = [ ' Poignee ' , ' Carre ' , ' Noix ' , ' Plaque ' , ' Pene ' ]
2022-10-25 01:42:30 +02:00
2022-10-26 06:01:57 +02:00
objects_dict = { ' Coffre ' : [ 1 , ' 1 : Coffre ' , ' Color-1 ' , [ ' Repere O ' ] ] ,
' Poignee ' : [ 2 , ' 2 : Poignée ' , ' Color-4 ' , [ ' Repere F ' ] ] ,
' Carre ' : [ 3 , ' 3 : Carré ' , ' Color-3 ' , [ ] ] ,
' Noix ' : [ 4 , ' 4 : Noix ' , ' Color-5 ' , [ ' Repere A ' , ' Repere D ' ] ] ,
' Plaque ' : [ 5 , ' 5 : Plaque ' , ' Color-7 ' , [ ' Repere B ' ] ] ,
' Tetiere ' : [ 6 , ' 6 : Têtière ' , ' Color-6 ' , [ ] ] ,
' Pene ' : [ 7 , ' 7 : Pêne ' , ' Color-2 ' , [ ' Repere C ' , ' Repere E ' ] ] }
2022-10-25 01:42:30 +02:00
2022-10-26 06:01:57 +02:00
# Couleurs
2022-10-25 01:42:30 +02:00
2022-10-26 06:01:57 +02:00
colors = [ [ ' Color-1 ' , [ 0.202 , 0.114 , 0.512 , 1 ] ] ,
[ ' Color-2 ' , [ 0.051 , 0.270 , 0.279 , 1 ] ] ,
[ ' Color-3 ' , [ 0.799 , 0.031 , 0.038 , 1 ] ] ,
[ ' Color-4 ' , [ 0.799 , 0.130 , 0.063 , 1 ] ] ,
[ ' Color-5 ' , [ 0.8 , 0.619 , 0.021 , 1 ] ] ,
[ ' Color-6 ' , [ 0.246 , 0.687 , 0.078 , 1 ] ] ,
[ ' Color-7 ' , [ 0.800 , 0.005 , 0.315 , 1 ] ] ,
[ ' Color-8 ' , [ 0.75 , 0.751 , 0.75 , 0 ] ] ]
colors_dict = { ' Color-1 ' : [ 0.202 , 0.114 , 0.512 , 1 ] ,
' Color-2 ' : [ 0.051 , 0.270 , 0.279 , 1 ] ,
' Color-3 ' : [ 0.799 , 0.031 , 0.038 , 1 ] ,
' Color-4 ' : [ 0.799 , 0.130 , 0.063 , 1 ] ,
' Color-5 ' : [ 0.8 , 0.619 , 0.021 , 1 ] ,
' Color-6 ' : [ 0.246 , 0.687 , 0.078 , 1 ] ,
' Color-7 ' : [ 0.800 , 0.005 , 0.315 , 1 ] ,
' Color-8 ' : [ 0.75 , 0.75 , 0.75 , 0 ] ,
' White ' : [ 0.8 , 0.8 , 0.8 , 1 ] }
# Initialisation
def init ( cont ) :
scene . objects [ ' Mecanism ' ] [ ' objects ' ] = objects
scene . objects [ ' Mecanism ' ] [ ' objects_anim ' ] = objects_anim
scene . objects [ ' Mecanism ' ] [ ' objects_dict ' ] = objects_dict
scene . objects [ ' Mecanism ' ] [ ' colors ' ] = colors
scene . objects [ ' Mecanism ' ] [ ' colors_dict ' ] = colors_dict
cine . manip_init ( ) # Manipulation du modèle 3D
cine . objects_init ( ) # Mécanisme
cine . cmd_init ( ) # Commandes
cine . anim_init ( ) # Animation