/* ============================================================================== This is an automatically generated GUI class created by the Introjucer! Be careful when adding custom code to these files, as only the code within the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded and re-saved. Created with Introjucer version: 3.1.0 ------------------------------------------------------------------------------ The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions" Copyright 2004-13 by Raw Material Software Ltd. ============================================================================== */ #ifndef __RBM_COMPONENT__ #define __RBM_COMPONENT__ //[Headers] -- You can add your own extra header files here -- #include "JuceHeader.h" #include "DrawComponent.hpp" #include "Layer.hpp" //[/Headers] //============================================================================== /** //[Comments] An auto-generated component, created by the Introjucer. Describe your class and how it works here! //[/Comments] */ class RbmComponent : public Component , public Layer , public DrawListener , public ButtonListener { public: //============================================================================== RbmComponent (const std::string &name, size_t id, size_t numVisibleX, size_t numVisibleY, size_t numHidden, size_t numContext); ~RbmComponent(); //============================================================================== //[UserMethods] -- You can add your own custom methods in this section. //[/UserMethods] void paint (Graphics& g); void resized() override; void mouseMove (const MouseEvent& e) override; void mouseEnter (const MouseEvent& e) override; void mouseExit (const MouseEvent& e) override; void mouseDown (const MouseEvent& e) override; void mouseDrag (const MouseEvent& e) override; void mouseUp (const MouseEvent& e) override; void mouseDoubleClick (const MouseEvent& e) override; void mouseWheelMove (const MouseEvent& e, const MouseWheelDetails& wheel) override; void setTrainingData(arma::mat const& batch); void redrawWeights(); void redrawWeights(size_t index); void redrawReconstruction(); void upPass(arma::mat const &v); void downPass(arma::mat const &v); void upDownPass(arma::mat const &v); arma::mat getConvolutedWeight(arma::mat const &h); ScopedPointer DrawVisibleTrain; ScopedPointer DrawHidden; ScopedPointer DrawContextTrain; arma::mat getTraining() const; arma::mat getReconst() const; void trainRedraw(const arma::mat& vc); void reconstRedraw(const arma::mat& vc); private: //[UserVariables] -- You can add your own custom variables in this section. ScopedPointer DrawVisibleReconst; ScopedPointer DrawContextReconst; ScopedPointer DrawWeights; ScopedPointer m_toggleEnable; ScopedPointer m_buttonCopyH2C; void gibbs(const arma::mat& v); size_t m_currWeightIndexToDraw; void onDraw(DrawComponent &obj) override; void buttonClicked(Button* buttonThatWasClicked) override; int m_sizeX; int m_sizeY; //[/UserVariables] //============================================================================== //============================================================================== JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (RbmComponent) }; //[EndFile] You can add extra defines here... //[/EndFile] #endif // __RBM_COMPONENT__