UniformGridFromBBox.hpp

00001 #ifndef _fishbase_UNIFORMGRID_HPP
00002 #define _fishbase_UNIFORMGRID_HPP
00003 
00004 #include <ocean/shrimp/VInfo.hpp>
00005 #include <ocean/shrimp/BoundingBox.hpp>
00006 
00007 #include <grid/CartesianChart.hpp>
00008 
00009 #include <bone/FishSlice.hpp>
00010 #include <bone/FishGrid.hpp>
00011 
00012 
00013 namespace Wizt
00014 {
00015 
00016 using namespace Wizt;
00017 using namespace Fiber;
00018 using namespace Eagle;
00019 using namespace Eagle::PhysicalSpace;
00020 
00021 /*
00022   Taken from lytica.
00023 
00024   A VObject which creates a fiber bundle with a uniform Grid.
00025 
00026   @todo (on work) Generalize this to other grid types, and unify it with
00027     the Grid generators in the cephalus/ place, such as RandomPointDistribution,
00028     PointDistribution, etc. All Grid generators should go into a common
00029     "fiber base" location.
00030  */
00031 class   UniformGridFromBBox : public VObject
00032 {
00033 public:
00034         VOutput<Grid>           myOutputGrid;
00035 
00036         TypedSlot<int>          TimeSteps;
00037         TypedSlot<double>       TMin,
00038                                 TMax;
00039 
00040         TypedSlot<int>          GridResolutionX,
00041                                 GridResolutionY,
00042                                 GridResolutionZ;
00043 
00044         TypedSlot<VBoundingBox> GridSize;
00045 
00046         TypedSlot<string>       GridName;
00047 
00048         UniformGridFromBBox(const string&name, int p, const RefPtr<VCreationPreferences>&VP);
00049 
00050         ~UniformGridFromBBox();
00051 
00052         override bool update(VRequest&Context, double precision);
00053 
00054 };
00055 
00056 } // namespace
00057 
00058 
00059 #endif // fishbase_UNIFORMGRID_HPP