Files
Enzo/src/Engine/Operator/GeometryOpDef.cpp
2025-07-08 16:39:15 +01:00

64 lines
1.4 KiB
C++

#include "Engine/Operator/GeometryOpDef.h"
#include <stdexcept>
#include <iostream>
bool enzo::nt::GeometryOpDef::outputRequested(unsigned int outputIndex)
{
// TODO: implement
return true;
}
const enzo::geo::Geometry& enzo::nt::GeometryOpDef::getInputGeoView(unsigned int inputIndex)
{
// TODO: implement
return enzo::geo::Geometry();
}
enzo::geo::Geometry enzo::nt::GeometryOpDef::cloneInputGeo(unsigned int inputIndex)
{
// TODO: implement
return enzo::geo::Geometry();
}
void enzo::nt::GeometryOpDef::setOutputGeometry(unsigned int outputIndex, enzo::geo::Geometry geometry)
{
if(outputIndex>maxOutputs_)
{
throw std::runtime_error("Cannot set output geometry to index > maxOutputs");
}
outputGeometry_[outputIndex] = geometry;
}
enzo::nt::GeometryOpDef::GeometryOpDef()
{
minInputs_=1;
maxInputs_=4;
maxOutputs_=4;
outputGeometry_ = std::vector<enzo::geo::Geometry>(4, enzo::geo::Geometry());
}
void enzo::nt::GeometryOpDef::cookOp()
{
using namespace enzo;
std::cout << "COOKING\n";
if(outputRequested(0))
{
// copy input geometry
geo::Geometry geo = cloneInputGeo(0);
// set output geometry
setOutputGeometry(0, geo);
}
// if(outputRequested(1))
// {
// // create new geometry
// const geo::Geometry& geo1 = getInputGeoView(0);
// geo::Geometry geo2;
// setOutputGeometry(1, geo2);
// }
}