123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380 |
- // Copyright 2009-2021 Intel Corporation
- // SPDX-License-Identifier: Apache-2.0
- #include "primitive.h"
- #include "curveNv.h"
- #include "curveNi.h"
- #include "curveNi_mb.h"
- #include "linei.h"
- #include "triangle.h"
- #include "trianglev.h"
- #include "trianglev_mb.h"
- #include "trianglei.h"
- #include "quadv.h"
- #include "quadi.h"
- #include "subdivpatch1.h"
- #include "object.h"
- #include "instance.h"
- #include "subgrid.h"
- namespace embree
- {
- /********************** Curve4v **************************/
- template<>
- const char* Curve4v::Type::name () const {
- return "curve4v";
- }
- template<>
- size_t Curve4v::Type::sizeActive(const char* This) const
- {
- if ((*This & Geometry::GType::GTY_BASIS_MASK) == Geometry::GType::GTY_BASIS_LINEAR)
- return ((Line4i*)This)->size();
- else
- return ((Curve4v*)This)->N;
- }
- template<>
- size_t Curve4v::Type::sizeTotal(const char* This) const
- {
- if ((*This & Geometry::GType::GTY_BASIS_MASK) == Geometry::GType::GTY_BASIS_LINEAR)
- return 4;
- else
- return ((Curve4v*)This)->N;
- }
- template<>
- size_t Curve4v::Type::getBytes(const char* This) const
- {
- if ((*This & Geometry::GType::GTY_BASIS_MASK) == Geometry::GType::GTY_BASIS_LINEAR)
- return Line4i::bytes(sizeActive(This));
- else
- return Curve4v::bytes(sizeActive(This));
- }
- /********************** Curve4i **************************/
- template<>
- const char* Curve4i::Type::name () const {
- return "curve4i";
- }
- template<>
- size_t Curve4i::Type::sizeActive(const char* This) const
- {
- if ((*This & Geometry::GType::GTY_BASIS_MASK) == Geometry::GType::GTY_BASIS_LINEAR)
- return ((Line4i*)This)->size();
- else
- return ((Curve4i*)This)->N;
- }
- template<>
- size_t Curve4i::Type::sizeTotal(const char* This) const
- {
- if ((*This & Geometry::GType::GTY_BASIS_MASK) == Geometry::GType::GTY_BASIS_LINEAR)
- return 4;
- else
- return ((Curve4i*)This)->N;
- }
- template<>
- size_t Curve4i::Type::getBytes(const char* This) const
- {
- if ((*This & Geometry::GType::GTY_BASIS_MASK) == Geometry::GType::GTY_BASIS_LINEAR)
- return Line4i::bytes(sizeActive(This));
- else
- return Curve4i::bytes(sizeActive(This));
- }
- /********************** Curve4iMB **************************/
- template<>
- const char* Curve4iMB::Type::name () const {
- return "curve4imb";
- }
- template<>
- size_t Curve4iMB::Type::sizeActive(const char* This) const
- {
- if ((*This & Geometry::GType::GTY_BASIS_MASK) == Geometry::GType::GTY_BASIS_LINEAR)
- return ((Line4i*)This)->size();
- else
- return ((Curve4iMB*)This)->N;
- }
- template<>
- size_t Curve4iMB::Type::sizeTotal(const char* This) const
- {
- if ((*This & Geometry::GType::GTY_BASIS_MASK) == Geometry::GType::GTY_BASIS_LINEAR)
- return 4;
- else
- return ((Curve4iMB*)This)->N;
- }
- template<>
- size_t Curve4iMB::Type::getBytes(const char* This) const
- {
- if ((*This & Geometry::GType::GTY_BASIS_MASK) == Geometry::GType::GTY_BASIS_LINEAR)
- return Line4i::bytes(sizeActive(This));
- else
- return Curve4iMB::bytes(sizeActive(This));
- }
- /********************** Line4i **************************/
- template<>
- const char* Line4i::Type::name () const {
- return "line4i";
- }
- template<>
- size_t Line4i::Type::sizeActive(const char* This) const {
- return ((Line4i*)This)->size();
- }
- template<>
- size_t Line4i::Type::sizeTotal(const char* This) const {
- return 4;
- }
- template<>
- size_t Line4i::Type::getBytes(const char* This) const {
- return sizeof(Line4i);
- }
- /********************** Triangle4 **************************/
- template<>
- const char* Triangle4::Type::name () const {
- return "triangle4";
- }
- template<>
- size_t Triangle4::Type::sizeActive(const char* This) const {
- return ((Triangle4*)This)->size();
- }
- template<>
- size_t Triangle4::Type::sizeTotal(const char* This) const {
- return 4;
- }
- template<>
- size_t Triangle4::Type::getBytes(const char* This) const {
- return sizeof(Triangle4);
- }
- /********************** Triangle4v **************************/
- template<>
- const char* Triangle4v::Type::name () const {
- return "triangle4v";
- }
- template<>
- size_t Triangle4v::Type::sizeActive(const char* This) const {
- return ((Triangle4v*)This)->size();
- }
- template<>
- size_t Triangle4v::Type::sizeTotal(const char* This) const {
- return 4;
- }
- template<>
- size_t Triangle4v::Type::getBytes(const char* This) const {
- return sizeof(Triangle4v);
- }
- /********************** Triangle4i **************************/
- template<>
- const char* Triangle4i::Type::name () const {
- return "triangle4i";
- }
- template<>
- size_t Triangle4i::Type::sizeActive(const char* This) const {
- return ((Triangle4i*)This)->size();
- }
- template<>
- size_t Triangle4i::Type::sizeTotal(const char* This) const {
- return 4;
- }
- template<>
- size_t Triangle4i::Type::getBytes(const char* This) const {
- return sizeof(Triangle4i);
- }
- /********************** Triangle4vMB **************************/
- template<>
- const char* Triangle4vMB::Type::name () const {
- return "triangle4vmb";
- }
- template<>
- size_t Triangle4vMB::Type::sizeActive(const char* This) const {
- return ((Triangle4vMB*)This)->size();
- }
- template<>
- size_t Triangle4vMB::Type::sizeTotal(const char* This) const {
- return 4;
- }
- template<>
- size_t Triangle4vMB::Type::getBytes(const char* This) const {
- return sizeof(Triangle4vMB);
- }
- /********************** Quad4v **************************/
- template<>
- const char* Quad4v::Type::name () const {
- return "quad4v";
- }
- template<>
- size_t Quad4v::Type::sizeActive(const char* This) const {
- return ((Quad4v*)This)->size();
- }
- template<>
- size_t Quad4v::Type::sizeTotal(const char* This) const {
- return 4;
- }
- template<>
- size_t Quad4v::Type::getBytes(const char* This) const {
- return sizeof(Quad4v);
- }
- /********************** Quad4i **************************/
- template<>
- const char* Quad4i::Type::name () const {
- return "quad4i";
- }
- template<>
- size_t Quad4i::Type::sizeActive(const char* This) const {
- return ((Quad4i*)This)->size();
- }
- template<>
- size_t Quad4i::Type::sizeTotal(const char* This) const {
- return 4;
- }
- template<>
- size_t Quad4i::Type::getBytes(const char* This) const {
- return sizeof(Quad4i);
- }
- /********************** SubdivPatch1 **************************/
- const char* SubdivPatch1::Type::name () const {
- return "subdivpatch1";
- }
- size_t SubdivPatch1::Type::sizeActive(const char* This) const {
- return 1;
- }
- size_t SubdivPatch1::Type::sizeTotal(const char* This) const {
- return 1;
- }
- size_t SubdivPatch1::Type::getBytes(const char* This) const {
- return sizeof(SubdivPatch1);
- }
- SubdivPatch1::Type SubdivPatch1::type;
- /********************** Virtual Object **************************/
- const char* Object::Type::name () const {
- return "object";
- }
- size_t Object::Type::sizeActive(const char* This) const {
- return 1;
- }
- size_t Object::Type::sizeTotal(const char* This) const {
- return 1;
- }
- size_t Object::Type::getBytes(const char* This) const {
- return sizeof(Object);
- }
- Object::Type Object::type;
- /********************** Instance **************************/
- const char* InstancePrimitive::Type::name () const {
- return "instance";
- }
- size_t InstancePrimitive::Type::sizeActive(const char* This) const {
- return 1;
- }
- size_t InstancePrimitive::Type::sizeTotal(const char* This) const {
- return 1;
- }
- size_t InstancePrimitive::Type::getBytes(const char* This) const {
- return sizeof(InstancePrimitive);
- }
- InstancePrimitive::Type InstancePrimitive::type;
- /********************** SubGrid **************************/
- const char* SubGrid::Type::name () const {
- return "subgrid";
- }
- size_t SubGrid::Type::sizeActive(const char* This) const {
- return 1;
- }
- size_t SubGrid::Type::sizeTotal(const char* This) const {
- return 1;
- }
- size_t SubGrid::Type::getBytes(const char* This) const {
- return sizeof(SubGrid);
- }
- SubGrid::Type SubGrid::type;
-
- /********************** SubGridQBVH4 **************************/
- template<>
- const char* SubGridQBVH4::Type::name () const {
- return "SubGridQBVH4";
- }
- template<>
- size_t SubGridQBVH4::Type::sizeActive(const char* This) const {
- return 1;
- }
- template<>
- size_t SubGridQBVH4::Type::sizeTotal(const char* This) const {
- return 1;
- }
- template<>
- size_t SubGridQBVH4::Type::getBytes(const char* This) const {
- return sizeof(SubGridQBVH4);
- }
- }
|