コード例 #1
0
ファイル: openmesh.hpp プロジェクト: Answeror/cg
 inline void set_radiosity(trimesh &mesh, patch_handle patch, real_t value)
 {
     set_g(mesh.property(property_handles::radiosity(), patch), value);
 }
コード例 #2
0
        SimpleMDAccessGenerator::SimpleMDAccessGenerator()
		{
            Source_R2 =
				CreateFile_R2;

            CreateFile_R2 =
                (CreateClassDescription
                << line_g(1) << CreateClassReference) [ent0, entN];

            CreateClassDescription =
                str_g("# ") <<  UEntity_R2 << "Access"
                << line_g(1) << "Réprésente une classe d'accès pour les objets " << UEntity_R2
                << ". Cette classe est utilisée pour gérer l'entité " << UEntity_R2 << " dans la base de données.";

            CreateClassReference =
                line_g(1) << str_g("# Référence")
                << CreateConstructorReference_R2
                << CreateGetAllReference_R2
                << CreateGetManyReference_R2
                << CreateGetOneReference_R2
                << CreateSelectOneReference_R2
                << CreateSelectManyReference_R2
                << CreateCancelSelectedReference_R2
                << CreateIsSelectedReference_R2
                << CreateFillReference_R2
                << CreateFillAllReference_R2
                << CreateFillOneReference_R2
                << CreateFillManyReference_R2
                << CreateIsModifiedReference_R2
                << CreateUpdateReference_R2
                << CreateInsertReference_R2
                << CreateDeleteReference_R2
                << CreateGetErrorReference_R2;

            CreateConstructorReference_R2 =
                line_g(1) << str_g("## Constructeur ") << UEntity_R2 << "Access"
                << line_g(1) << "*Paramètres*"
                << line_g(1) << "* None."
                << line_g(2) << "*Description*"
                << line_g(1) << "* Crée une instance de la classe " << UEntity_R2 << "Access."
                << line_g(1) << "```"
                << line_g(1) << "access = new " << UEntity_R2 << "Access();"
                << line_g(1) << "```"
                << line_g(1);


            CreateGetAllReference_R2 =
                line_g(1) << str_g("## Méthode GetAll") << UEntity_R2 << "s"
                << line_g(1) << "*Paramètres*"
                << line_g(1) << "* None."
                << line_g(2) << "*Retour*"
                << line_g(1) << "* Array[" << UEntity_R2 << "] : Tous les objets " << UEntity_R2 << " de la base de données."
                << line_g(2) << "*Description*"
                << line_g(1) << "* Retourne toutes les objets " << UEntity_R2 << " de la base de données."
                << line_g(1) << "```"
                << line_g(1) << "objects = access.GetAll" << UEntity_R2 << "s();"
                << line_g(1) << "```"
                << line_g(1);

            CreateGetManyReference_R2 =
                line_g(1) << str_g("## Méthode GetMany") << UEntity_R2 << "s"
                << line_g(1) << "*Paramètres*"
                << line_g(1) << "* String : clause WHERE de la recherche SQL."
                << line_g(2) << "*Retour*"
                << line_g(1) << "* Array[" << UEntity_R2 << "] : Les objets " << UEntity_R2 << " de la base de données correspondant à la requête SQL."
                << line_g(2) << "*Description*"
                << line_g(1) << "* Retourne les objets " << UEntity_R2 << " de la base de données correspondant à la requête SQL."
                << line_g(1) << "```"
                << line_g(1) << "objects = access.GetMany" << UEntity_R2 << "s(\""
                << ListEntityParam_R2(+(LAttribute_R2 << " = \" & value")) << ");"
                << line_g(1) << "```"
                << line_g(1);

            CreateGetOneReference_R2 =
                line_g(1) << str_g("## Méthode GetOne") << UEntity_R2
                << line_g(1) << "*Paramètres*"
                << ListEntityIDParam_R2
                   (
                        line_g(1) << "* " << AttributeInterpreterTypeName_R2 << " : L'identifiant " << LAttribute_R2 << " de la table " << LEntity_R2 << "."
                   )
                << line_g(2) << "*Retour*"
                << line_g(1) << "* " << UEntity_R2 << " : L'objet " << UEntity_R2 << " de la base de données correspondant à l'identifiant."
                << line_g(2) << "*Description*"
                << line_g(1) << "* Retourne l'objet " << UEntity_R2 << " de la base de données correspondant à l'identifiant."
                << line_g(1) << "```"
                << line_g(1) << "object = access.GetOne" << UEntity_R2 << "("
                << ListEntityIDParam_R2
                   (
                        LAttribute_R2 << ~-str_g(", ")
                   )
                << ");"
                << line_g(1) << "```"
                << line_g(1);

            CreateSelectOneReference_R2 =
                line_g(1) << str_g("## Méthode SelectOne") << UEntity_R2
                << line_g(1) << "*Paramètres*"
                << ListEntityIDParam_R2
                   (
                        line_g(1) << "* " << AttributeInterpreterTypeName_R2 << " : L'identifiant " << LAttribute_R2 << " de la table " << LEntity_R2 << "."
                   )
                << line_g(1) << "* Bool : non utilisé."
                << line_g(2) << "*Retour*"
                << line_g(1) << "* " << UEntity_R2 << " : L'objet " << UEntity_R2 << " de la base de données correspondant à l'identifiant, verrouillé pour modification."
                << line_g(2) << "*Description*"
                << line_g(1) << "* Verrouille l'objet " << UEntity_R2 << " de la base de données correspondant à l'identifiant."
                << line_g(1) << "```"
                << line_g(1) << "object = access.SelectOne" << UEntity_R2 << "("
                << ListEntityIDParam_R2
                   (
                        LAttribute_R2 << str_g(", ")
                   )
                << "false);"
                << line_g(1) << "```"
                << line_g(1);

            CreateSelectManyReference_R2 =
                (line_g(1) << str_g("## Méthode SelectMany") << UEntity_R2 << "s"
                << line_g(1) << "*Paramètres*"
                << line_g(1) << "* String : clause WHERE de la recherche SQL."
                << line_g(1) << "* Bool : non utilisé."
                << line_g(2) << "*Retour*"
                << line_g(1) << "* Array[" << UEntity_R2 << "] : Les objets " << UEntity_R2 << " de la base de données correspondant à la requête SQL, verrouillés pour modification."
                << line_g(2) << "*Description*"
                << line_g(1) << "* Verrouille les objets " << UEntity_R2 << " de la base de données correspondant à la requête SQL."
                << line_g(1) << "```"
                << line_g(1) << "objects = access.SelectMany" << UEntity_R2 << "s(\""
                << ListEntityParam_R2(+(LAttribute_R2 << " = \" & value")) << ", false);"
                << line_g(1) << "```"
                << line_g(1))
                [has_g(0, set_g((attr0,attrN), If_IsREF_R2), gt_g())];

            CreateCancelSelectedReference_R2 =
                line_g(1) << str_g("## Méthode CancelSelection")
                << line_g(1) << "*Paramètres*"
                << line_g(1) << "* None."
                << line_g(2) << "*Retour*"
                << line_g(1) << "* None."
                << line_g(2) << "*Description*"
                << line_g(1) << "* Déverrouille les objets et annule les modifications."
                << line_g(1) << "```"
                << line_g(1) << "access.CancelSelection();"
                << line_g(1) << "```"
                << line_g(1);

            CreateIsSelectedReference_R2 =
                line_g(1) << str_g("## Méthode IsSelected") << UEntity_R2
                << line_g(1) << "*Paramètres*"
                << line_g(1) << "* " << UEntity_R2 << " : L'objet à tester."
                << line_g(2) << "*Retour*"
                << line_g(1) << "* Bool : True, si l'objet est verrouillé, False sinon."
                << line_g(2) << "*Description*"
                << line_g(1) << "* Retourne True, si l'objet est verrouillé, False sinon."
                << line_g(1) << "```"
                << line_g(1) << "var = access.IsSelected" << UEntity_R2 << "(" << LEntity_R2 << ");"
                << line_g(1) << "```"
                << line_g(1);

            CreateFillReference_R2 =
                (line_g(1) << str_g("## Méthode Fill") << UAttribute_R2
                << line_g(1) << "*Paramètres*"
                << line_g(1) << "* " << UEntity_R2 << " : L'objet à remplir."
                << line_g(2) << "*Retour*"
                << line_g(1) << "* None."
                << line_g(2) << "*Description*"
                << line_g(1) << "* Recupère la donnée " << LAttribute_R2 << " dans la base de données."
                << line_g(1) << "```"
                << line_g(1) << "access.Fill" << UAttribute_R2 << "(" << LEntity_R2 << ");"
                << line_g(1) << "```"
                << line_g(1))
                [If_IsREF_R2 && !If_IsID_R2]
                [attr0, attrN];

            CreateFillAllReference_R2 =
                ListRelationN_R2
                (
                    line_g(1) << str_g("## Méthode FillAll") << URelationNName_R2 << "s"
                    << line_g(1) << "*Paramètres*"
                    << line_g(1) << "* " << URelation1_R2 << " : L'objet à remplir."
                    << line_g(1) << "* Bool : non utilisé."
                    << line_g(2) << "*Retour*"
                    << line_g(1) << "* None."
                    << line_g(2) << "*Description*"
                    << line_g(1) << "* Recupère les données " << URelationNName_R2 << " dans la base de données."
                    << line_g(1) << "```"
                    << line_g(1) << "access.FillAll" << URelationNName_R2 << "s(" << LRelation1_R2 << ", false);"
                    << line_g(1) << "```"
                    << line_g(1)
                );

            CreateFillOneReference_R2 =
                ListRelationN_R2
                (
                    line_g(1) << str_g("## Méthode FillOne") << URelationNName_R2
                    << line_g(1) << "*Paramètres*"
                    << line_g(1) << "* " << URelation1_R2 << " : L'objet à remplir."
                    << ListRelationIDParam_R2
                       (
                            line_g(1) << "* " << AttributeInterpreterTypeName_R2 << " : L'identifiant " << LAttribute_R2 << " de la table " << LEntity_R2 << "."
                       )
                    << line_g(1) << "* Bool : non utilisé."
                    << line_g(2) << "*Retour*"
                    << line_g(1) << "* None."
                    << line_g(2) << "*Description*"
                    << line_g(1) << "* Recupère la donnée " << URelationNName_R2 << " dans la base de données."
                    << line_g(1) << "```"
                    << line_g(1) << "access.FillOne" << URelationNName_R2 << "(" << LRelation1_R2
                    << ListRelationIDParam_R2
                    (
                         ", " << LAttribute_R2
                    )
                    << ", false);"
                    << line_g(1) << "```"
                    << line_g(1)
                );

            CreateFillManyReference_R2 =
                ListRelationN_R2
                (
                    line_g(1) << str_g("## Méthode FillMany") << URelationNName_R2 << "s"
                    << line_g(1) << "*Paramètres*"
                    << line_g(1) << "* " << URelation1_R2 << " : L'objet à remplir."
                    << line_g(1) << "* String : clause WHERE de la recherche SQL."
                    << line_g(1) << "* Bool : non utilisé."
                    << line_g(2) << "*Retour*"
                    << line_g(1) << "* None."
                    << line_g(2) << "*Description*"
                    << line_g(1) << "* Recupère les données " << URelationNName_R2 << " dans la base de données."
                    << line_g(1) << "```"
                    << line_g(1) << "access.FillMany" << URelationNName_R2 << "s(" << LRelation1_R2 << ", \""
                    << ListRelationIDParam_R2(+(LAttribute_R2 << " = \" & value")) << ", false);"
                    << line_g(1) << "```"
                    << line_g(1)
                );

            CreateIsModifiedReference_R2 =
                line_g(1) << str_g("## Méthode IsModified") << UEntity_R2
                << line_g(1) << "*Paramètres*"
                << line_g(1) << "* " << UEntity_R2 << " : L'objet à tester."
                << line_g(2) << "*Retour*"
                << line_g(1) << "* Bool : True si l'objet est modifié, False sinon."
                << line_g(2) << "*Description*"
                << line_g(1) << "* Retourne True si l'objet est modifié, False sinon."
                << line_g(1) << "```"
                << line_g(1) << "var = access.IsModified" << UEntity_R2 << "(" << LEntity_R2 << ");"
                << line_g(1) << "```"
                << line_g(1);

            CreateUpdateReference_R2 =
                line_g(1) << str_g("## Méthode Update") << UEntity_R2
                << line_g(1) << "*Paramètres*"
                << line_g(1) << "* " << UEntity_R2 << " : L'objet à mettre à jour dans la base de données."
                << line_g(2) << "*Retour*"
                << line_g(1) << "* None."
                << line_g(2) << "*Description*"
                << line_g(1) << "* Met à jour la donnée dans la base de données. La donnée doit exister dans la base de données et être verrouillé pour modification."
                << line_g(1) << "```"
                << line_g(1) << "var = access.Update" << UEntity_R2 << "(" << LEntity_R2 << ");"
                << line_g(1) << "```"
                << line_g(1);

            CreateInsertReference_R2 =
                line_g(1) << str_g("## Méthode Insert") << UEntity_R2
                << line_g(1) << "*Paramètres*"
                << line_g(1) << "* " << UEntity_R2 << " : L'objet à ajouter dans la base de données."
                << line_g(2) << "*Retour*"
                << line_g(1) << "* None."
                << line_g(2) << "*Description*"
                << line_g(1) << "* Ajoute une donnée dans la base de données."
                << line_g(1) << "```"
                << line_g(1) << "var = access.Insert" << UEntity_R2 << "(" << LEntity_R2 << ");"
                << line_g(1) << "```"
                << line_g(1);

            CreateDeleteReference_R2 =
                line_g(1) << str_g("## Méthode Delete") << UEntity_R2
                << line_g(1) << "*Paramètres*"
                << line_g(1) << "* " << UEntity_R2 << " : L'objet à supprimer dans la base de données."
                << line_g(2) << "*Retour*"
                << line_g(1) << "* None."
                << line_g(2) << "*Description*"
                << line_g(1) << "* Supprime une donnée dans la base de données. La donnée doit exister dans la base de données et être verrouillé pour modification."
                << line_g(1) << "```"
                << line_g(1) << "var = access.Delete" << UEntity_R2 << "(" << LEntity_R2 << ");"
                << line_g(1) << "```"
                << line_g(1);

            CreateGetErrorReference_R2 =
                line_g(1) << str_g("## Méthode GetError")
                << line_g(1) << "*Paramètres*"
                << line_g(1) << "* String : Le texte de l'erreur."
                << line_g(2) << "*Retour*"
                << line_g(1) << "* Bool : True si une erreur est survenue, False sinon."
                << line_g(2) << "*Description*"
                << line_g(1) << "* Retourne l'erreur remontée par la base de données."
                << line_g(1) << "```"
                << line_g(1) << "var = access.GetError(textError);"
                << line_g(1) << "```"
                << line_g(1);

		}
コード例 #3
0
ファイル: dstar.cpp プロジェクト: Br0ce/pathview
bool Dstar::search(Graph* graph,
                   const Position& start,
                   const Position& goal)
{

  auto s = graph->get_state(start);
  s->set_rhs(MAX_WEIGHT);
  s->set_g(MAX_WEIGHT);

  auto g = graph->get_state(goal);
  auto g_elem = std::find(open_.begin(), open_.end(), g);
  if(g_elem == open_.end())
  {
    g->set_rhs(0);
    g->set_g(MAX_WEIGHT);
    open_.push_back(g);
  }
  g->set_h(graph->get_h(start, g->get_position()));


  auto current = g;

  auto search_limit = graph->get_states().size() * 2;

  std::size_t cnt = 0;
  while((current->get_key() < s->get_key()) || (s->rhs() != s->g()))
  {
    if(cnt > search_limit)
    {
      emit report_exp_dst(cnt);
      return false;
    }

    ++cnt;
    current->set_expanded();

    if(current->g() > current->rhs())
    {
      current->set_g(current->rhs());
      for(auto& pred : graph->get_succ(current)) // succ = pred
        update_state(pred, start, goal, graph);
    }
    else
    {
      current->set_g(MAX_WEIGHT);
      update_state(current, start, goal, graph);
      for(auto& pred : graph->get_succ(current)) // succ = pred
        update_state(pred, start, goal, graph);
    }

    auto it_elem = std::find(open_.begin(), open_.end(), current);
    if(it_elem != open_.end())
      open_.erase(it_elem);

    current = *(std::min_element(open_.begin(),
                                 open_.end(),
                                 [](State * l, State * r)
    { return l->get_key() < r->get_key(); }));

  }

  emit report_exp_dst(cnt);

  return true;
}