File diff_sim.h
File List > core > diff_sim.h
Go to the documentation of this file
#pragma once
#include <uipc/common/dllexport.h>
#include <uipc/diff_sim/parameter_collection.h>
#include <uipc/diff_sim/sparse_coo_view.h>
namespace uipc::backend
{
class SceneVisitor;
class DiffSimVisitor;
}  // namespace uipc::backend
namespace uipc::core::internal
{
class Scene;
}
namespace uipc::core
{
class Scene;
class UIPC_CORE_API DiffSim
{
    friend class Scene;
    friend class internal::Scene;
    friend class backend::DiffSimVisitor;
    DiffSim();
    // delete copy constructor and assignment operator
    DiffSim(const DiffSim&)            = delete;
    DiffSim& operator=(const DiffSim&) = delete;
  public:
    diff_sim::ParameterCollection&       parameters();
    const diff_sim::ParameterCollection& parameters() const;
    ~DiffSim();
  private:
    class Impl;
    U<Impl> m_impl;
    void init(internal::Scene& scene);  // only be called by Scene
};
}  // namespace uipc::core