Revision control

++ // 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);
++ }
++ }