Visual Computing Library
|
Public Member Functions | |
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. | |
void | draw (uint viewId) const |
This member function must draw the object. It will be called at every frame. | |
Box3d | boundingBox () const |
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 & |
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 () && |
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 |
This member function is used to check if the object is visible. | |
void | setVisibility (bool vis) |
This member function is used to set the visibility of the object. | |
![]() | |
PolymorphicObjectVector (const PolymorphicObjectVector &other) | |
Creates a Vector object with copied of the elements of the other Vector. | |
PolymorphicObjectVector (PolymorphicObjectVector &&other) noexcept | |
Move constructor. | |
PolymorphicObjectVector (std::size_t size, const T &value) | |
Creates a Vector object with the specified size. | |
PolymorphicObjectVector (ItType first, ItType last) | |
Constructs the container with the contents of the range [first, last). | |
PolymorphicObjectVector (RangeType &&rng) | |
Constructs the container with the contents of the range rng. | |
ValueType | at (uint i) |
Access the specified element with bounds checking. | |
ConstValueType | at (uint i) const |
Reference | at (uint i) |
Access the specified element with bounds checking. | |
ConstReference | at (uint i) const |
Access the specified element with bounds checking. | |
ValueType | atMod (int i) |
Access the specified element, computing first the module of the position w.r.t. the size of the container. | |
ConstValueType | atMod (uint i) const |
Reference | atMod (int i) |
Access the specified element, computing first the module of the position w.r.t. the size of the container. | |
ConstReference | atMod (int i) const |
Access the specified element, computing first the module of the position w.r.t. the size of the container. | |
ValueType | front () |
Access the first element of the Vector. | |
ConstValueType | front () const |
Reference | front () |
Access the first element of the Vector. | |
ConstReference | front () const |
Access the first element of the Vector. | |
ValueType | back () |
Access the last element of the Vector. | |
ConstValueType | back () const |
Reference | back () |
Access the last element of the Vector. | |
ConstReference | back () const |
Access the last element of the Vector. | |
void | set (uint i, const T &e) |
Set the value of the element at the specified position. | |
void | set (Base::ConstIterator it, const T &e) |
Set the value of the element at the specified position. | |
void | set (Rng &&r) |
Set the elements of the Vector using the values from a range. | |
void | set (uint i, const T &e) |
Set the value of the element at the specified position. | |
void | set (uint i, T &&e) |
Set the value of the element at the specified position. | |
void | set (ConstIterator it, const T &e) |
Set the value of the element at the specified position. | |
void | set (ConstIterator it, T &&e) |
Set the value of the element at the specified position. | |
void | set (Rng &&r) |
Set the elements of the Vector using the values from a range. | |
void | fill (const T &e) |
Fill all elements of the Vector with clones of the specified value. | |
void | fill (const T &e) |
Fill all elements of the Vector with the specified value. | |
void | resize (uint n, const T &v) |
Resize the Vector to the specified size. | |
void | resize (uint n, const T &v=T()) |
Resize the Vector to the specified size. | |
void | pushBack (const T &v) |
Add an element to the end of the Vector. | |
void | pushBack (T &&v) |
Add an element to the end of the Vector. | |
void | pushBack (const T &v) |
Add an element to the end of the Vector. | |
void | pushBack (T &&v) |
Add an element to the end of the Vector. | |
void | insert (uint i, const T &v) |
Insert an element at the specified position in the Vector. | |
void | insert (uint i, T &&v) |
Insert an element at the specified position in the Vector. | |
void | insert (uint i, const T &v) |
Insert an element at the specified position in the Vector. | |
void | insert (uint i, T &&v) |
Insert an element at the specified position in the Vector. | |
void | swap (PolymorphicObjectVector &other) |
Swaps the contents of the container with those of other. | |
void | swap (Vector &other) |
Swaps the contents of the container with those of other. | |
ValueType | operator[] (uint i) |
Returns a reference to the element at specified location i. No bounds checking is performed. | |
ValueType | operator() (uint i) |
Returns a reference to the element at specified location i. No bounds checking is performed. | |
PolymorphicObjectVector & | operator= (PolymorphicObjectVector other) |
Assignment operator of the PolymorphicObjectVector. | |
Iterator | begin () |
Return an iterator pointing to the beginning of the Vector. | |
ConstIterator | begin () const |
Iterator | begin () |
Return an iterator pointing to the beginning of the Vector. | |
ConstIterator | begin () const |
Return a const iterator pointing to the beginning of the Vector. | |
Iterator | end () |
Return an iterator pointing to the end of the Vector. | |
ConstIterator | end () const |
Iterator | end () |
Return an iterator pointing to the end of the Vector. | |
ConstIterator | end () const |
Return a const iterator pointing to the end of the Vector. | |
void | clear () |
Remove all elements from the Vector. | |
bool | contains (const MakeConstPointerT< T > &e) const |
Check if the Vector contains the specified element. | |
ConstPointer | data () const |
Pointer | data () |
Returns a pointer to the underlying array serving as element storage. The pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty (data() is not dereferenceable in that case). | |
ConstPointer | data () const |
Returns a const pointer to the underlying array serving as element storage. The pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty (data() is not dereferenceable in that case). | |
bool | empty () const noexcept |
Returns whether the vector is empty (i.e. whether its size is 0). | |
void | erase (uint i) |
Remove the element at the specified index from the Vector. | |
ConstIterator | find (const MakeConstPointer< T > &e) const |
Iterator | find (const MakeConstPointerT< T > &e) |
Find the first occurrence of the specified element in the Vector. | |
ConstIterator | find (const MakeConstPointerT< T > &e) const |
Find the first occurrence of the specified element in the Vector. | |
uint | indexOf (const MakeConstPointerT< T > &e) const |
Get the index of the first occurrence of the specified element in the Vector. | |
std::size_t | size () const |
Returns the size of the container. | |
![]() | |
DrawableObject ()=default | |
Empty constructor. | |
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 Types | |
using | Base = PolymorphicObjectVector< DrawableObject > |
Private Member Functions | |
uint | firstVisibleObject () const |
Private Attributes | |
bool | mVisible = true |
Additional Inherited Members | |
![]() | |
using | ValueType = Base::ValueType |
using | ConstValueType = Base::ConstValueType |
using | Iterator = BaseVector::ConstIterator |
using | ConstIterator = Base::ConstIterator |
![]() | |
static const int | SIZE |
Size of the vector at compile time. It will be -1 if the Vector has dynamic size. | |
![]() | |
using | ValueType = Base::ValueType |
using | ConstValueType = MakeConstPointerT< ValueType > |
using | Reference = Base::Reference |
using | ConstPointer = const ConstValueType * |
using | Pointer = Base::Pointer |
using | Iterator = Base::Iterator |
using | ConstIterator = ConstPointerIterator< typename Base::ConstIterator > |
![]() | |
using | ValueType = Container::value_type |
The type of the elements stored in the Vector. | |
using | ConstReference = Container::const_reference |
A const reference to the type of the elements stored in the Vector. | |
using | Reference = Container::reference |
A reference to the type of the elements stored in the Vector. | |
using | ConstPointer = Container::const_pointer |
A const pointer to the type of the elements stored in the Vector. | |
using | Pointer = Container::pointer |
A pointer to the type of the elements stored in the Vector. | |
using | Iterator = Container::iterator |
An iterator to the elements of the Vector. | |
using | ConstIterator = Container::const_iterator |
A const iterator to the elements of the Vector. | |
![]() | |
ConstValueType | at (uint i) const |
ConstValueType | atMod (uint i) const |
ConstValueType | front () const |
ConstValueType | back () const |
ConstPointer | data () const |
ConstIterator | find (const MakeConstPointer< T > &e) const |
ConstValueType | operator[] (uint i) const |
ConstValueType | operator() (uint i) const |
ConstIterator | begin () const |
ConstIterator | end () const |
Vector ()=default | |
Creates an empty Vector object. | |
Vector (std::size_t size, const T &value=T()) | |
Creates a Vector object with the specified size. | |
template<typename ItType > | |
Vector (ItType first, ItType last) | |
Constructs the container with the contents of the range [first, last). | |
template<Range RangeType> | |
Vector (RangeType &&rng) | |
Constructs the container with the contents of the range rng. | |
Vector (std::initializer_list< T > list) | |
Constructs the container with the contents of the initializer list list . | |
Reference | at (uint i) |
Access the specified element with bounds checking. | |
ConstReference | at (uint i) const |
Access the specified element with bounds checking. | |
Reference | atMod (int i) |
Access the specified element, computing first the module of the position w.r.t. the size of the container. | |
ConstReference | atMod (int i) const |
Access the specified element, computing first the module of the position w.r.t. the size of the container. | |
Reference | back () |
Access the last element of the Vector. | |
ConstReference | back () const |
Access the last element of the Vector. | |
void | clear () |
Remove all elements from the Vector. | |
bool | contains (const MakeConstPointerT< T > &e) const |
Check if the Vector contains the specified element. | |
Pointer | data () |
Returns a pointer to the underlying array serving as element storage. The pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty (data() is not dereferenceable in that case). | |
ConstPointer | data () const |
Returns a const pointer to the underlying array serving as element storage. The pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty (data() is not dereferenceable in that case). | |
bool | empty () const noexcept |
Returns whether the vector is empty (i.e. whether its size is 0). | |
void | erase (uint i) |
Remove the element at the specified index from the Vector. | |
void | fill (const T &e) |
Fill all elements of the Vector with the specified value. | |
Iterator | find (const MakeConstPointerT< T > &e) |
Find the first occurrence of the specified element in the Vector. | |
ConstIterator | find (const MakeConstPointerT< T > &e) const |
Find the first occurrence of the specified element in the Vector. | |
Reference | front () |
Access the first element of the Vector. | |
ConstReference | front () const |
Access the first element of the Vector. | |
uint | indexOf (const MakeConstPointerT< T > &e) const |
Get the index of the first occurrence of the specified element in the Vector. | |
void | insert (uint i, const T &v) |
Insert an element at the specified position in the Vector. | |
void | insert (uint i, T &&v) |
Insert an element at the specified position in the Vector. | |
void | pushBack (const T &v) |
Add an element to the end of the Vector. | |
void | pushBack (T &&v) |
Add an element to the end of the Vector. | |
void | resize (uint n, const T &v=T()) |
Resize the Vector to the specified size. | |
void | set (uint i, const T &e) |
Set the value of the element at the specified position. | |
void | set (uint i, T &&e) |
Set the value of the element at the specified position. | |
void | set (ConstIterator it, const T &e) |
Set the value of the element at the specified position. | |
void | set (ConstIterator it, T &&e) |
Set the value of the element at the specified position. | |
template<Range Rng> requires InputRange<Rng, T> | |
void | set (Rng &&r) |
Set the elements of the Vector using the values from a range. | |
std::size_t | size () const |
Returns the size of the container. | |
void | swap (Vector &other) |
Swaps the contents of the container with those of other. | |
Iterator | begin () |
Return an iterator pointing to the beginning of the Vector. | |
ConstIterator | begin () const |
Return a const iterator pointing to the beginning of the Vector. | |
Iterator | end () |
Return an iterator pointing to the end of the Vector. | |
ConstIterator | end () const |
Return a const iterator pointing to the end of the Vector. | |
![]() | |
Vector ()=default | |
Creates an empty Vector object. | |
Vector (std::size_t size, const T &value=T()) | |
Creates a Vector object with the specified size. | |
template<typename ItType > | |
Vector (ItType first, ItType last) | |
Constructs the container with the contents of the range [first, last). | |
template<Range RangeType> | |
Vector (RangeType &&rng) | |
Constructs the container with the contents of the range rng. | |
Vector (std::initializer_list< T > list) | |
Constructs the container with the contents of the initializer list list . | |
std::size_t | size () const |
Returns the size of the container. | |
Reference | at (uint i) |
Access the specified element with bounds checking. | |
ConstReference | at (uint i) const |
Access the specified element with bounds checking. | |
Reference | atMod (int i) |
Access the specified element, computing first the module of the position w.r.t. the size of the container. | |
ConstReference | atMod (int i) const |
Access the specified element, computing first the module of the position w.r.t. the size of the container. | |
Reference | front () |
Access the first element of the Vector. | |
ConstReference | front () const |
Access the first element of the Vector. | |
Reference | back () |
Access the last element of the Vector. | |
ConstReference | back () const |
Access the last element of the Vector. | |
Pointer | data () |
Returns a pointer to the underlying array serving as element storage. The pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty (data() is not dereferenceable in that case). | |
ConstPointer | data () const |
Returns a const pointer to the underlying array serving as element storage. The pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty (data() is not dereferenceable in that case). | |
void | set (uint i, const T &e) |
Set the value of the element at the specified position. | |
void | set (uint i, T &&e) |
Set the value of the element at the specified position. | |
void | set (ConstIterator it, const T &e) |
Set the value of the element at the specified position. | |
void | set (ConstIterator it, T &&e) |
Set the value of the element at the specified position. | |
template<Range Rng> requires InputRange<Rng, T> | |
void | set (Rng &&r) |
Set the elements of the Vector using the values from a range. | |
void | fill (const T &e) |
Fill all elements of the Vector with the specified value. | |
bool | contains (const MakeConstPointerT< T > &e) const |
Check if the Vector contains the specified element. | |
Iterator | find (const MakeConstPointerT< T > &e) |
Find the first occurrence of the specified element in the Vector. | |
ConstIterator | find (const MakeConstPointerT< T > &e) const |
Find the first occurrence of the specified element in the Vector. | |
uint | indexOf (const MakeConstPointerT< T > &e) const |
Get the index of the first occurrence of the specified element in the Vector. | |
void | swap (Vector &other) |
Swaps the contents of the container with those of other. | |
void | resize (uint n, const T &v=T()) |
Resize the Vector to the specified size. | |
void | pushBack (const T &v) |
Add an element to the end of the Vector. | |
void | pushBack (T &&v) |
Add an element to the end of the Vector. | |
void | insert (uint i, const T &v) |
Insert an element at the specified position in the Vector. | |
void | insert (uint i, T &&v) |
Insert an element at the specified position in the Vector. | |
template<typename... Args> requires (N < 0) | |
void | emplace (uint i, Args &&... args) |
Insert an element at the specified position in the Vector. | |
bool | empty () const noexcept |
Returns whether the vector is empty (i.e. whether its size is 0). | |
void | erase (uint i) |
Remove the element at the specified index from the Vector. | |
void | clear () |
Remove all elements from the Vector. | |
void | serialize (std::ostream &os) const |
void | deserialize (std::istream &is) |
Reference | operator[] (uint i) |
Returns a reference to the element at specified location i. No bounds checking is performed. | |
ConstReference | operator[] (uint i) const |
Returns a const reference to the element at specified location i. No bounds checking is performed. | |
Reference | operator() (uint i) |
Returns a reference to the element at specified location i. No bounds checking is performed. | |
ConstReference | operator() (uint i) const |
Returns a const reference to the element at specified location i. No bounds checking is performed. | |
Iterator | begin () |
Return an iterator pointing to the beginning of the Vector. | |
Iterator | end () |
Return an iterator pointing to the end of the Vector. | |
ConstIterator | begin () const |
Return a const iterator pointing to the beginning of the Vector. | |
ConstIterator | end () const |
Return a const iterator pointing to the end of the Vector. | |
![]() | |
void | swap (DrawableObject &other) |
Utility swap function that allows to swap the content of two DrawableObject instances. | |
![]() | |
Container | mContainer |
![]() | |
static const int | SIZE |
Size of the vector at compile time. It will be -1 if the Vector has dynamic size. | |
![]() | |
static const int | SIZE = N |
Size of the vector at compile time. It will be -1 if the Vector has dynamic size. | |
|
virtual |
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.
|
virtual |
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.
|
virtual |
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.
|
virtual |
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.
|
virtual |
This member function is called after the initialization of the Context. It must initialize and bind data to the GPU like buffers and textures.
Reimplemented from vcl::DrawableObject.
|
virtual |
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.