code: def _add_new_feature_names(self, feature_names):
      # For transformers that add features to the dataframe:
      if hasattr(self, "_get_new_features_name") and callable(
          self._get_new_features_name
      ):
          feature_names = feature_names + self._get_new_features_name()
  
          if self.drop_original is True and self.variables_ is not None:
              # Remove names of variables to drop.
              feature_names = [
                  f for f in feature_names if f not in self.variables_
              ]
  
      return feature_names
  
file_path: feature_engine/feature_engine/_base_transformers/mixins.py
imports: from typing import Dict, List, Union
  import pandas
  from numpy import ndarray
  from numpy.typing import ArrayLike
  from sklearn.utils.validation import check_is_fitted
  from feature_engine._variable_handling.variable_type_selection import _find_or_check_numerical_variables
  from feature_engine.dataframe_checks import _check_contains_inf, _check_contains_na, check_X
label_desc: Use image node_id 2 for calling the GetFeatureNamesOutMixin obj's underlying member method code with example usage: obj._add_new_feature_names(feature_names) and returns: feature_names