|
FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
|
Base class to render triangular surface using shaders and support for floating origin (i.e., large coordinates). More...
#include <SurfaceRenderer.hpp>
Public Types | |
| using | SurfaceRenderState = SkeletonRendererState |
| using | MyRenderState = SkeletonRendererState |
| using | glsl = RenderNamespace::glsl |
Public Types inherited from Wizt::TriangleRenderer | |
| using | GridInspector = Fiber::GridInspector< Fiber::hasSkeletonOfGridType< Fiber::TriangularSurface > > |
Public Types inherited from Wizt::Programmable | |
| typedef RenderBasin::Program | Program |
Additional Inherited Members | |
Static Public Member Functions inherited from Wizt::TriangleRenderer | |
| static RefPtr< RenderBasin::VertexAttribute > | getNormals (const AnemoneCreationContext &ARC) |
| Query the per-vertex normal vectors for the current triangle fragment as specified via the AnemoneCreationContext and create a vertex attribute from it. | |
| static void | computeVertexNormals (Fiber::Representation &myVertices, Fiber::Representation &mySkeletonAsVertices, VRequest &Context) |
| Compute normals in case we don't have any yet. | |
Static Public Member Functions inherited from Wizt::FloatingAnemone | |
| static RefPtr< RenderBasin::VertexAttribute > | createPossiblyShiftedVertices (const RefPtr< TypedChunk< Eagle::PhysicalSpace::point > > &Coordinates, const BoundingBox &BBox, const GridAnemone::AnemoneCreationContext &ARC, const RefPtr< GridAnemone::AnemoneExplorer > &AE) |
| If the AnemoneExplorer is a FloatingAnemoneExplorer (which will be the case if getAnemoneExplorer() has been implemented as documented), then shift coordinates into the center of the bounding box, create a vertex attribute from it and set a CoordinateShift interface to the AnemoneExplorer. | |
| static RefPtr< RenderBasin::VertexAttribute > | createPossiblyShiftedVertices (const RefPtr< Fiber::MemBase > &Coordinates, const BoundingBox &BBox, const GridAnemone::AnemoneCreationContext &ARC, const RefPtr< GridAnemone::AnemoneExplorer > &AE, const MemCore::Attributes &Attribs, bool AllowProceduralCoordinates) |
| If the AnemoneExplorer is a FloatingAnemoneExplorer (which will be the case if getAnemoneExplorer() has been implemented as documented), then shift coordinates into the center of the bounding box, create a vertex attribute from it and set a CoordinateShift interface to the AnemoneExplorer. | |
| static std::pair< RefPtr< RenderBasin::VertexAttribute >, bool > | createPossiblyShiftedVertices (Fiber::CreativeArrayBase &myPrimaryDataFragment, const GridAnemone::AnemoneCreationContext &ARC, const RefPtr< GridAnemone::AnemoneExplorer > &AE, bool AllowProceduralCoordinates, const Fiber::CreativeArrayBase::result &AsyncCallback) |
| Same as similar function, but using a Creator to create the coordinates and possibly compute the bounding box information. | |
Static Public Member Functions inherited from Wizt::FloatingOriginAnemone | |
| static RefPtr< RenderBasin::VertexAttribute > | createPossiblyShiftedVertices (const RefPtr< TypedChunk< Eagle::PhysicalSpace::point > > &Coordinates, const GridAnemone::AnemoneCreationContext &ARC, const RefPtr< GridAnemone::AnemoneExplorer > &AE) |
Static Public Member Functions inherited from Wizt::FloatOrigin | |
| static VRenderContext::ModelViewState | getTranslationVector (const VRenderContext &Context, Intercube &IC, Eagle::tvector3 &TranslationVector, double CameraShiftThreshold) |
| static Eagle::tvector3 | getTranslationVector (Intercube &IC) |
Static Public Member Functions inherited from Wizt::Programmable | |
| static string | OptionalFileRead (const string &filename, const string &text) |
| static glsl | setNumberOfLightSources (VRenderContext &Context, const std::string &VariableName="lightNum") |
Static Public Member Functions inherited from Wizt::Phong | |
| static std::string | PhongShaderFunction () |
| vec4 Phong(vec4 VertexInEyeSpace,
vec3 NormalInEyeSpace,
vec4 DiffuseColor,
float shininess,
float sidedness); | |
Static Public Member Functions inherited from Wizt::Illuminatable | |
| static RenderBasin::glsl | DefineLightSources (VRenderContext &Context) |
| static bool | feedAnemone (VRenderContext &Context, AnemoneCreatorBase &AC) |
| static bool | feedAnemone (const AnemoneCreatorContext &ACC) |
| static bool | isValidAnemone (VRenderContext &Context, const AnemoneCreatorBase &AC) |
| Check for consistency of the number of light sources. | |
| static bool | isValidAnemone (VRenderContext &Context, const WeakPtr< AnemoneCreatorBase > &AC) |
| Check for consistency of the number of light sources. | |
| static bool | isValidAnemone (const AnemoneCreatorContext &ACC) |
| Check for consistency of the number of light sources. | |
Public Attributes inherited from Wizt::Programmable | |
| glsl | f_prefix |
| glsl | g_prefix |
| RenderBasin::GeometryInputType | GeometryInput |
| RenderBasin::GeometryOutputType | GeometryOutput |
| glsl | v_prefix |
Static Public Attributes inherited from Wizt::Programmable | |
| static const char | default_fragment_shader [] |
| static const char | default_geometry_shader [] |
| static const char | default_vertex_shader [] |
Base class to render triangular surface using shaders and support for floating origin (i.e., large coordinates).
The shader must support usage of the TranslationVector, which is needed to shift vertices by this amount.
|
override |
The SurfaceAnemoneExplorer is a temporary object that exists while rendering all fragments of a surface.
It is created with the first fragment and destroyed with the last fragment. As such, it defines the scope of a FloatOrigin operation and stores the ModelView matrix which is locally modified during rendering.
Create an AnemoneExplorer that lives during the duration of the rendering operation and shifts the coordinate origin according to the FloatOrigin base class specification.