class_docstr: Base class for all the voxel grid variants whith added trilinear interpolation between
  voxels (for example if voxel (0.333, 1, 3) is queried that would return the result
  2/3*voxel[0, 1, 3] + 1/3*voxel[1, 1, 3])
  
  Internally voxel grids are indexed by (features, x, y, z). If queried the point is not
  inside the voxel grid the vector that will be returned is determined by padding.
  
  Members:
      align_corners: parameter used in torch.functional.grid_sample. For details go to
          https://pytorch.org/docs/stable/generated/torch.nn.functional.grid_sample.html by
          default is True
      padding: padding mode for outside grid values 'zeros' | 'border' | 'reflection'.
          Default is 'zeros'
      mode: interpolation mode to calculate output values :
          'bilinear' | 'nearest' | 'bicubic' | 'trilinear'.
          Default: 'bilinear' Note: mode='bicubic' supports only FullResolutionVoxelGrid.
          When mode='bilinear' and the input is 5-D, the interpolation mode used internally
          will actually be trilinear.
      n_features: number of dimensions of base feature vector. Determines how many features
          the grid returns.
      resolution_changes: a dictionary, where keys are change epochs and values are
          3-tuples containing x, y, z grid sizes corresponding to each axis to each epoch
class_docstr_tok: ["Base","class","for","all","the","voxel","grid","variants","whith","added","trilinear","interpolation","between","voxels","(","for","example","if","voxel","(","0.333",",","1",",","3",")","is","queried","that","would","return","the","result","2\/3","*","voxel","[","0",",","1",",","3","]","+","1\/3","*","voxel","[","1",",","1",",","3","]",")","Internally","voxel","grids","are","indexed","by","(","features",",","x",",","y",",","z",")",".","If","queried","the","point","is","not","inside","the","voxel","grid","the","vector","that","will","be","returned","is","determined","by","padding",".","Members",":","align_corners",":","parameter","used","in","torch.functional.grid_sample",".","For","details","go","to","https",":","\/\/pytorch.org\/docs\/stable\/generated\/torch.nn.functional.grid_sample.html","by","default","is","True","padding",":","padding","mode","for","outside","grid","values","'zeros","'","|","'border","'","|","'reflection","'",".","Default","is","'zeros'","mode",":","interpolation","mode","to","calculate","output","values",":","'bilinear","'","|","'nearest","'","|","'bicubic","'","|","'trilinear","'",".","Default",":","'bilinear","'","Note",":","mode='bicubic","'","supports","only","FullResolutionVoxelGrid",".","When","mode='bilinear","'","and","the","input","is","5-D",",","the","interpolation","mode","used","internally","will","actually","be","trilinear",".","n_features",":","number","of","dimensions","of","base","feature","vector",".","Determines","how","many","features","the","grid","returns",".","resolution_changes",":","a","dictionary",",","where","keys","are","change","epochs","and","values","are","3-tuples","containing","x",",","y",",","z","grid","sizes","corresponding","to","each","axis","to","each","epoch"]
docstr: Evaluates the voxel grid at points in the local coordinate frame,
  The interpolation type is determined by the `mode` member.
  
  Arguments:
      points (torch.Tensor): tensor of points that you want to query
          of a form (n_grids, ..., 3), in a normalized form (coordinates are in [-1, 1])
      grid_values: an object of type VMFactorizedVoxelGrid.values_type which has tensors
          as members which have shapes derived from the get_shapes() method
  Returns:
      torch.Tensor: shape (n_grids, ..., n_features)
docstr_tok: ["Evaluates","the","voxel","grid","at","points","in","the","local","coordinate","frame",",","The","interpolation","type","is","determined","by","the","`","mode","`","member",".","Arguments",":","points","(","torch.Tensor",")",":","tensor","of","points","that","you","want","to","query","of","a","form","(","n_grids",",","...",",","3",")",",","in","a","normalized","form","(","coordinates","are","in","[","-1",",","1","]",")","grid_values",":","an","object","of","type","VMFactorizedVoxelGrid.values_type","which","has","tensors","as","members","which","have","shapes","derived","from","the","get_shapes","(",")","method","Returns",":","torch.Tensor",":","shape","(","n_grids",",","...",",","n_features",")"]
code: def evaluate_local(
      self, points: torch.Tensor, grid_values: VoxelGridValuesBase
  ) -> torch.Tensor:
      """
      Evaluates the voxel grid at points in the local coordinate frame,
      The interpolation type is determined by the `mode` member.
  
      Arguments:
          points (torch.Tensor): tensor of points that you want to query
              of a form (n_grids, ..., 3), in a normalized form (coordinates are in [-1, 1])
          grid_values: an object of type VMFactorizedVoxelGrid.values_type which has tensors
              as members which have shapes derived from the get_shapes() method
      Returns:
          torch.Tensor: shape (n_grids, ..., n_features)
      """
      raise NotImplementedError()
  
imports: import logging
  import warnings
  from collections.abc import Mapping
  from dataclasses import dataclass, field
  from distutils.version import LooseVersion
  from typing import Any, Callable, ClassVar, Dict, Iterator, List, Optional, Tuple, Type
  import torch
  from omegaconf import DictConfig
  from pytorch3d.implicitron.tools.config import Configurable, registry, ReplaceableBase, run_auto_creation
  from pytorch3d.structures.volumes import VolumeLocator
  from .utils import interpolate_line, interpolate_plane, interpolate_volume
label_desc: Use image node_id 3 for calling the VoxelGridBase obj's underlying member method code with example usage: obj.evaluate_local(points, grid_values) without return types