Visual Computing Library
|
Public Member Functions | |
DrawableTrackBall (const DrawableTrackBall &other) | |
DrawableTrackBall (DrawableTrackBall &&other)=default | |
void | swap (DrawableTrackBall &other) |
Swap the content of this object with another DrawableTrackBall object. | |
void | updateDragging (bool isDragging) |
Update the dragging status of the trackball. | |
void | setTransform (const vcl::Matrix44f &mtx) |
DrawableTrackBall & | operator= (DrawableTrackBall other) |
void | draw (uint viewId) const override |
This member function must draw the object. It will be called at every frame. | |
Box3d | boundingBox () const override |
This member function is used to find a good camera position to render object. It should return the the bounding box of the object. Return a null bounding box if the object shouldn't influence the position of the camera. | |
std::shared_ptr< DrawableObject > | clone () const &override |
This member function is used to create a new copy of the DrawableObject. Each derived class must implement this member function, that returns a shared pointer pointing to a copy of the current one. for more details about this paradigm, check polimorphism clone in modern c++: https://www.fluentcpp.com/2017/09/08/make-polymorphic-copy-modern-cpp/. | |
std::shared_ptr< DrawableObject > | clone () &&override |
This member function is used to create a new DrawableObject that is a moved from the current one. This object will be destroyed after the call of this function. Each derived class must implement this member function, that returns a shared pointer pointing to the moved object. For more details about this paradigm, check polimorphism clone in modern c++: https://www.fluentcpp.com/2017/09/08/make-polymorphic-copy-modern-cpp/. | |
bool | isVisible () const override |
This member function is used to check if the object is visible. | |
void | setVisibility (bool vis) override |
This member function is used to set the visibility of the object. | |
![]() | |
DrawableObject ()=default | |
Empty constructor. | |
virtual void | init () |
This member function is called after the initialization of the Context. It must initialize and bind data to the GPU like buffers and textures. | |
virtual const std::string & | name () const |
Returns the name of the object. | |
virtual std::string & | name () |
Returns a reference of the name of the object, that allows to modify it. | |
const std::string & | info () const |
Returns the info of the object. | |
std::string & | info () |
Returns a reference of the info of the object, that allows to modify it. | |
Private Member Functions | |
void | createBuffers () |
Private Attributes | |
bool | mVisible = true |
VertexBuffer | mVertexCoordsBuffer |
IndexBuffer | mEdgeIndexBuffer |
bgfx::ProgramHandle | mProgram |
DrawableTrackballUniforms | mUniforms |
vcl::Matrix44f | mTransform = vcl::Matrix44f::Identity() |
Static Private Attributes | |
static const uint | N_POINTS = 128 |
static const auto | TRACKBALL_DATA |
Friends | |
void | swap (DrawableTrackBall &a, DrawableTrackBall &b) |
Additional Inherited Members | |
![]() | |
void | swap (DrawableObject &other) |
Utility swap function that allows to swap the content of two DrawableObject instances. | |
|
inlineoverridevirtual |
This member function is used to find a good camera position to render object. It should return the the bounding box of the object. Return a null bounding box if the object shouldn't influence the position of the camera.
Implements vcl::DrawableObject.
|
inlineoverridevirtual |
This member function is used to create a new DrawableObject that is a moved from the current one. This object will be destroyed after the call of this function. Each derived class must implement this member function, that returns a shared pointer pointing to the moved object. For more details about this paradigm, check polimorphism clone in modern c++: https://www.fluentcpp.com/2017/09/08/make-polymorphic-copy-modern-cpp/.
Generally, if your class that inherits from DrawableObject is called MyObject, the clone member function should be implemented as follows:
Implements vcl::DrawableObject.
|
inlineoverridevirtual |
This member function is used to create a new copy of the DrawableObject. Each derived class must implement this member function, that returns a shared pointer pointing to a copy of the current one. for more details about this paradigm, check polimorphism clone in modern c++: https://www.fluentcpp.com/2017/09/08/make-polymorphic-copy-modern-cpp/.
Generally, if your class that inherits from DrawableObject is called MyObject, the clone member function should be implemented as follows:
Implements vcl::DrawableObject.
|
inlineoverridevirtual |
This member function must draw the object. It will be called at every frame.
viewId | The ID of the view to draw. It may be used depending on the rendering engine. |
Implements vcl::DrawableObject.
|
inlineoverridevirtual |
This member function is used to check if the object is visible.
true
if the object is visible; Implements vcl::DrawableObject.
This member function is used to set the visibility of the object.
[in] | vis | true if the object should be visible; |
Implements vcl::DrawableObject.
|
inline |
Swap the content of this object with another DrawableTrackBall object.
[in] | other | the other DrawableTrackBall object. |
Update the dragging status of the trackball.
[in] | isDragging | true if the trackball is being dragged, false otherwise. |
|
private |