# -*- coding: utf-8 -*-## This file is subject to the terms and conditions defined in# file 'LICENSE.txt', which is part of this source code package.#importnumpyasnpfromMuscat.LinAlg.ConstraintsHolderimportConstraintsHolderfromMuscat.LinAlg.TransformimportTransform
[docs]defGetDirections(self,i,pos=None,direction=None):ifself.constraintDirections=="Global":res=np.zeros(3)res[i]=1returnreselifself.constraintDirections=="Origin":returnself.originSystem.GetOrthoNormalBase().GetDirection(i,pos,direction)elifself.constraintDirections=="Target":returnself.targetSystem.GetOrthoNormalBase().GetDirection(i,pos,direction)elifself.constraintDirections=="Local":ifi==0:returndirection/np.linalg.norm(direction)# Create a local base based on the direction vector# need a second vector to generate a consistent base(???)raiseValueError("Error! 'Local' constraintDirections not well formed ")# pragma: no coverelse:raiseValueError(f"Error! constraintDirections {self.constraintDirections} not well formed ")# pragma: no cover