21#include <cilselector.h>
46 ViewCube(
const std::shared_ptr<Renderer>& renderer,
const std::shared_ptr<Image2D>&
image,
47 const std::shared_ptr<Vector2i>& coordinate,
const std::shared_ptr<Vector2i>& backgroundSize,
const std::shared_ptr<Vector2i>& windowSize);
52 void align(
const std::shared_ptr<Camera>&
camera,
const std::shared_ptr<BoundingBox>& boundingBox,
bool animate =
false);
53 int hit(
int x,
int y);
55 void bind(
const std::string&
name, std::function<
void()> callback);
60 std::shared_ptr<Image2D>
image()
const;
76 std::shared_ptr<Node> buildCube();
77 std::shared_ptr<Node> buildEdge();
78 std::shared_ptr<Node> buildAxis();
79 std::shared_ptr<Node> buildHilite();
80 std::shared_ptr<Primitive> buildFace(
const Vector3f& p0,
const Vector3f& p1,
const Vector3f& p2,
const Vector3f& p3,
const std::string& text,
float texCoordOffset);
81 std::shared_ptr<Material> buildFaceMaterial();
88 std::shared_ptr<std::vector<std::shared_ptr<Block>>>
m_blocks;
97 std::shared_ptr<Renderer> m_renderer;
98 std::shared_ptr<Color3f> m_backgroundColor;
99 std::shared_ptr<Color3f> m_borderColor;
100 std::shared_ptr<Color3f> m_textColor;
101 std::shared_ptr<Color3f> m_hilitedBorderColor;
102 std::shared_ptr<Color3f> m_hilitedColor;
103 std::function<void()> m_onHilited;
104 std::function<void()> m_onUpdated;
105 std::function<void()> m_onAnimationStarted;
106 std::function<void()> m_onAnimationEnded;
107 std::shared_ptr<Timer> m_timer;
110 std::shared_ptr<Camera> m_camera;
122 const std::shared_ptr<Vector2i>& coordinate,
const std::shared_ptr<Vector2i>& backgroundSize,
const std::shared_ptr<Vector2i>& windowSize);
133 const std::shared_ptr<Vector2i>& coordinate,
const std::shared_ptr<Vector2i>& backgroundSize,
const std::shared_ptr<Vector2i>& windowSize);
144 const std::shared_ptr<Vector2i>& coordinate,
const std::shared_ptr<Vector2i>& backgroundSize,
const std::shared_ptr<Vector2i>& windowSize);
151 std::shared_ptr<FullViewCube>
_fullViewCube(
const std::shared_ptr<Renderer>& renderer,
const std::shared_ptr<Image2D>& image,
152 const std::shared_ptr<Vector2i>& coordinate,
const std::shared_ptr<Vector2i>& backgroundSize,
const std::shared_ptr<Vector2i>& windowSize);
154 std::shared_ptr<MiniViewCube>
_miniViewCube(
const std::shared_ptr<Renderer>& renderer,
const std::shared_ptr<Image2D>& image,
155 const std::shared_ptr<Vector2i>& coordinate,
const std::shared_ptr<Vector2i>& backgroundSize,
const std::shared_ptr<Vector2i>& windowSize);
157 std::shared_ptr<CornerViewCube>
_cornerViewCube(
const std::shared_ptr<Renderer>& renderer,
const std::shared_ptr<Image2D>& image,
158 const std::shared_ptr<Vector2i>& coordinate,
const std::shared_ptr<Vector2i>& backgroundSize,
const std::shared_ptr<Vector2i>& windowSize);
Vector3f dir
Definition viewcube.h:32
Box3f box
Definition viewcube.h:31
The Box3f class inherits from Box3, specilizing the template parameters to float for element type and...
Definition box.h:214
The Color3f class inherits from Color3, specilizing the template parameters to float for element type...
Definition color.h:105
Definition viewcube.h:141
virtual ~CornerViewCube()
CornerViewCube(const std::shared_ptr< Renderer > &renderer, const std::shared_ptr< Image2D > &image, const std::shared_ptr< Vector2i > &coordinate, const std::shared_ptr< Vector2i > &backgroundSize, const std::shared_ptr< Vector2i > &windowSize)
Definition viewcube.h:119
FullViewCube(const std::shared_ptr< Renderer > &renderer, const std::shared_ptr< Image2D > &image, const std::shared_ptr< Vector2i > &coordinate, const std::shared_ptr< Vector2i > &backgroundSize, const std::shared_ptr< Vector2i > &windowSize)
The Matrix4f class is 4 X 4 matrix.
Definition matrix.h:226
Definition viewcube.h:130
MiniViewCube(const std::shared_ptr< Renderer > &renderer, const std::shared_ptr< Image2D > &image, const std::shared_ptr< Vector2i > &coordinate, const std::shared_ptr< Vector2i > &backgroundSize, const std::shared_ptr< Vector2i > &windowSize)
The Pass class represents a rendering pass within a graphics pipeline.
Definition pass.h:32
CameraPtr camera
This member holds a shared pointer to a Camera object which the current pass uses for rendering.
Definition pass.h:37
std::string name
This memeber stores the name of the pass.
Definition pass.h:34
The Quaternion class inherits from the Tuple class, specilizing the templated parameter to float for ...
Definition quaternion.h:28
The class Vector3f inherits from the templated class of Vector3, and the template parameters are spec...
Definition vector.h:322
std::shared_ptr< Geometry > m_blockCube
Definition viewcube.h:91
void bind(const std::string &name, std::function< void()> callback)
void setImage(const std::shared_ptr< Image2D > &image)
void align(const std::shared_ptr< Camera > &camera, const std::shared_ptr< BoundingBox > &boundingBox, bool animate=false)
void send(const std::string &name)
std::shared_ptr< Image2D > image() const
Color3f borderColor() const
Color3f hilitedColor() const
void setBackgroundColor(const Color3f &color)
void setHilited(int hilited)
std::shared_ptr< Node > m_hilite
Definition viewcube.h:87
void setHilitedColor(const Color3f &color)
void sync(const std::shared_ptr< Camera > &camera)
Color3f hilitedBorderColor() const
int m_hilited
Definition viewcube.h:89
ViewCube(const std::shared_ptr< Renderer > &renderer, const std::shared_ptr< Image2D > &image, const std::shared_ptr< Vector2i > &coordinate, const std::shared_ptr< Vector2i > &backgroundSize, const std::shared_ptr< Vector2i > &windowSize)
void setTextColor(const Color3f &color)
std::shared_ptr< FaceSelector< Block > > m_selector
Definition viewcube.h:93
void unbind(const std::string &name)
std::shared_ptr< Image2D > m_image
Definition viewcube.h:94
Color3f textColor() const
void setBorderColor(const Color3f &color)
int m_unhilited
Definition viewcube.h:90
std::shared_ptr< std::vector< std::shared_ptr< Block > > > m_blocks
Definition viewcube.h:88
Color3f backgroundColor() const
void setHilitedBorderColor(const Color3f &color)
std::shared_ptr< Material > m_faceMaterial
Definition viewcube.h:92
std::shared_ptr< CornerViewCube > _cornerViewCube(const std::shared_ptr< Renderer > &renderer, const std::shared_ptr< Image2D > &image, const std::shared_ptr< Vector2i > &coordinate, const std::shared_ptr< Vector2i > &backgroundSize, const std::shared_ptr< Vector2i > &windowSize)
std::shared_ptr< MiniViewCube > _miniViewCube(const std::shared_ptr< Renderer > &renderer, const std::shared_ptr< Image2D > &image, const std::shared_ptr< Vector2i > &coordinate, const std::shared_ptr< Vector2i > &backgroundSize, const std::shared_ptr< Vector2i > &windowSize)
std::shared_ptr< FullViewCube > _fullViewCube(const std::shared_ptr< Renderer > &renderer, const std::shared_ptr< Image2D > &image, const std::shared_ptr< Vector2i > &coordinate, const std::shared_ptr< Vector2i > &backgroundSize, const std::shared_ptr< Vector2i > &windowSize)