parameters: (properties, length)
return_statement: return PropertyGetter(result)
docstring: Convenience Function to get the material properties as a dict
      and values in a python format.
docstring_summary: Convenience Function to get the material properties as a dict
      and values in a python format.
docstring_tokens: Convenience Function to get the material properties as a dict and values in a python format .
function: def _get_properties(properties, length): 
      """
      Convenience Function to get the material properties as a dict
      and values in a python format.
      """
      result = {}
      #read all properties
      for p in [properties[i] for i in range(length)]:
          #the name
          p = p.contents
          key = (str(p.mKey.data.decode("utf-8")).split('.')[1], p.mSemantic)
  
          #the data
          from ctypes import POINTER, cast, c_int, c_float, sizeof
          if p.mType == 1:
              arr = cast(p.mData, POINTER(c_float * int(p.mDataLength/sizeof(c_float)) )).contents
              value = [x for x in arr]
          elif p.mType == 3: #string can't be an array
              value = cast(p.mData, POINTER(structs.MaterialPropertyString)).contents.data.decode("utf-8")
          elif p.mType == 4:
              arr = cast(p.mData, POINTER(c_int * int(p.mDataLength/sizeof(c_int)) )).contents
              value = [x for x in arr]
          else:
              value = p.mData[:p.mDataLength]
  
          if len(value) == 1:
              [value] = value
  
          result[key] = value
  
      return PropertyGetter(result)
function_tokens: def _get_properties ( properties , length ) : result = { } #read all properties for p in [ properties [ i ] for i in range ( length ) ] : #the name p = p . contents key = ( str ( p . mKey . data . decode ( "utf-8" ) ) . split ( '.' ) [ 1 ] , p . mSemantic ) #the data from ctypes import POINTER , cast , c_int , c_float , sizeof if p . mType == 1 : arr = cast ( p . mData , POINTER ( c_float * int ( p . mDataLength / sizeof ( c_float ) ) ) ) . contents value = [ x for x in arr ] elif p . mType == 3 : #string can't be an array value = cast ( p . mData , POINTER ( structs . MaterialPropertyString ) ) . contents . data . decode ( "utf-8" ) elif p . mType == 4 : arr = cast ( p . mData , POINTER ( c_int * int ( p . mDataLength / sizeof ( c_int ) ) ) ) . contents value = [ x for x in arr ] else : value = p . mData [ : p . mDataLength ] if len ( value ) == 1 : [ value ] = value result [ key ] = value return PropertyGetter ( result )