void UBehaviorTreeGraphNode::FindDiffs(UEdGraphNode* OtherNode, FDiffResults& Results)
{
    FDiffSingleResult Diff;
    Diff.Diff = EDiffType::NODE_PROPERTY;
    Diff.Node1 = this;
    Diff.Node2 = OtherNode;
    Diff.ToolTip = LOCTEXT("DIF_NodePropertyToolTip", "A Property of the node has changed");
    Diff.DisplayColor = FLinearColor(0.25f,0.71f,0.85f);

    UBehaviorTreeGraphNode* ThisBehaviorTreeNode = Cast<UBehaviorTreeGraphNode>(this);
    UBehaviorTreeGraphNode* OtherBehaviorTreeNode = Cast<UBehaviorTreeGraphNode>(OtherNode);
    if(ThisBehaviorTreeNode && OtherBehaviorTreeNode)
    {
        DiffProperties( ThisBehaviorTreeNode->GetClass(), ThisBehaviorTreeNode, OtherBehaviorTreeNode, Results, Diff );

        UBTNode* ThisNodeInstance = Cast<UBTNode>(ThisBehaviorTreeNode->NodeInstance);
        UBTNode* OtherNodeInstance = Cast<UBTNode>(OtherBehaviorTreeNode->NodeInstance);
        if(ThisNodeInstance && OtherNodeInstance)
        {
            DiffProperties( ThisNodeInstance->GetClass(), ThisNodeInstance, OtherNodeInstance, Results, Diff );
        }
    }
}
bool library_geostat_init::bind_geostat_factories( Manager* dir ) {
  bool ok;
  ok = dir->factory( Kriging().name(), Kriging::create_new_interface );
  ok = dir->factory( Sgsim().name(), Sgsim::create_new_interface );
  ok = dir->factory( Indicator_kriging().name(), 
		Indicator_kriging::create_new_interface );
  ok = dir->factory( Cokriging().name(), Cokriging::create_new_interface );
  ok = dir->factory( Kriging_x_validation().name(), Kriging_x_validation::create_new_interface );
  ok = dir->factory( Cokriging_x_validation().name(), Cokriging_x_validation::create_new_interface );

  ok = dir->factory( Sisim().name(), Sisim::create_new_interface );
  ok = dir->factory( Cosgsim().name(), Cosgsim::create_new_interface );
  ok = dir->factory( Cosisim().name(), Cosisim::create_new_interface );
  ok = dir->factory( Snesim_Std().name(), Snesim_Std::create_new_interface );

  ok = dir->factory( Postsim().name(), Postsim::create_new_interface );
  ok = dir->factory( Postsim_categorical().name(), Postsim_categorical::create_new_interface );
  ok = dir->factory( PostKriging().name(), PostKriging::create_new_interface );
  ok = dir->factory( trans().name(), trans::create_new_interface );
  ok = dir->factory( transcat().name(), transcat::create_new_interface );
  ok = dir->factory( ImageProcess().name(), ImageProcess::create_new_interface );

//  ok = dir->factory( transcat().name(), transcat::create_new_interface );
  ok = dir->factory( dssim().name(), dssim::create_new_interface );
  ok = dir->factory( LU_sim().name(), LU_sim::create_new_interface );
//  ok = dir->factory( LU_sim().name(), LU_sim::create_new_interface );
  ok = dir->factory( Filtersim_Cate().name(), Filtersim_Cate::create_new_interface );
  ok = dir->factory( Filtersim_Cont().name(), Filtersim_Cont::create_new_interface );
  ok = dir->factory( NuTauModel().name(), NuTauModel::create_new_interface );
  ok = dir->factory( Moving_window().name(), Moving_window::create_new_interface );
  ok = dir->factory( DiffProperties().name(), DiffProperties::create_new_interface );
  ok = dir->factory( KrigingMean().name(), KrigingMean::create_new_interface );
  ok = dir->factory( Declus().name(), Declus::create_new_interface );
  ok = dir->factory( Kmeans_clustering().name(), Kmeans_clustering::create_new_interface );
  ok = dir->factory( Clustering_from_centroids().name(), Clustering_from_centroids::create_new_interface );
  


  return true;
}