#! /usr/bin/env python3
# -*- coding: utf-8 -*-
# Dolicorhynchops osborni FHSM VP404
#   10k faces on the mandible surface


def parms(d={}):
    p = {}
    path = 'CLIpro/250k'
    p['mandible'] = f'{path}/CLIpro_jaw_250k.stl'
    p['teeth'] = [[-34.058887, 21.742476, 9.846808],
                [33.013206, 24.755995, -0.564457]]
    p['LTMJ'] = [47.686401, 205.691238, 26.261269]
    p['RTMJ'] = [-50.710445, 204.954971, 26.360205]
    p['muscles'] = [
        {
            'file': f'{path}/M_AE_L1.stl',
            'force': 100.61,
            'focalpt': [47.666592, 175.921521, 79.560751],
            'method': 'T+N'                              # 'U', 'T', 'T+N'
        },
        {
            'file': f'{path}/M_AE_L2.stl',
            'force': 100.61,
            'focalpt': [47.666592, 175.921521, 79.560751],
            'method': 'T+N'                              # 'U', 'T', 'T+N'
        },
        {
            'file': f'{path}/M_AE_R1.stl',
            'force': 100.42,
            'focalpt': [-46.419570, 177.561510, 79.317629],
            'method': 'T+N'                              # 'U', 'T', 'T+N'
        },
        {
            'file': f'{path}/M_AE_R2.stl',
            'force': 100.42,
            'focalpt': [-46.419570, 177.561510, 79.317629],
            'method': 'T+N'                              # 'U', 'T', 'T+N'
        },
        {
            'file': f'{path}/M_AME_L.stl',
            'force': 77.85,
            'focalpt': [43.567966, 176.516406, 79.835879],
            'method': 'T+N'                              # 'U', 'T', 'T+N'
        },
        {
            'file': f'{path}/M_AME_R.stl',
            'force': 74.91,
            'focalpt': [-42.606496, 177.966337, 79.681598],
            'method': 'T+N'                              # 'U', 'T', 'T+N'
        },
        {
            'file': f'{path}/M_AMP_L.stl',
            'force': 60.38,
            'focalpt': [40.948735, 196.405144, 60.200407],
            'method': 'T+N'                              # 'U', 'T', 'T+N'
        },
        {
            'file': f'{path}/M_AMP_R.stl',
            'force': 60.63,
            'focalpt': [-45.187592, 194.885808, 60.386860],
            'method': 'T+N'                              # 'U', 'T', 'T+N'
        },
        {
            'file': f'{path}/M_PTP_L.stl',
            'force': 286.95,
            'focalpt': [16.500735, 183.994988, 75.391863],
            'method': 'T+N'                              # 'U', 'T', 'T+N'
        },
        {
            'file': f'{path}/M_PTP_R.stl',
            'force': 322.07,
            'focalpt': [-16.500735, 183.994988, 75.391863],
            'method': 'T+N'                              # 'U', 'T', 'T+N'
        },
        {
            'file': f'{path}/M_PTS_L.stl',
            'force': 57.40,
            'focalpt': [17.648059, 160.594971, 74.091063],
            'method': 'T+N'                              # 'U', 'T', 'T+N'
        },
        {
            'file': f'{path}/M_PTS_R.stl',
            'force': 60.05,
            'focalpt': [-12.290623, 162.896808, 75.891315],
            'method': 'T+N'                              # 'U', 'T', 'T+N'
        }
    ]
    p['fixations'] = {
        'teeth': ['z'],
        'LTMJ': ['x', 'z','y'],
        'RTMJ': ['x', 'z','y']
    }

    # material properties
    p['density'] = 1.662e-9  # [T/mm³] - bone: 1.850 kg/l
    p['Young'] = 15000.     # [MPa] elastic modulus - bone: 17-20 GPa
    p['Poisson'] = 0.3       # [-] Poisson's ratio

    p.update(d)
    return p


def getMetafor(p={}):
    import bonemodel as model
    return model.getMetafor(parms(p))