#include <MRCMesh/MRVector3.h>
#include <MRCMisc/exports.h>
#include <stddef.h>
Go to the source code of this file.
|
MRC_API MR_std_vector_MR_Vector3f * | MR_sampleHalfSphere (void) |
|
MRC_API const MR_Vector3f * | MR_SkyPatch_Get_dir (const MR_SkyPatch *_this) |
|
MRC_API void | MR_SkyPatch_Set_dir (MR_SkyPatch *_this, MR_Vector3f value) |
|
MRC_API MR_Vector3f * | MR_SkyPatch_GetMutable_dir (MR_SkyPatch *_this) |
|
MRC_API const float * | MR_SkyPatch_Get_radiation (const MR_SkyPatch *_this) |
|
MRC_API void | MR_SkyPatch_Set_radiation (MR_SkyPatch *_this, float value) |
|
MRC_API float * | MR_SkyPatch_GetMutable_radiation (MR_SkyPatch *_this) |
|
MRC_API MR_SkyPatch * | MR_SkyPatch_DefaultConstruct (void) |
|
MRC_API MR_SkyPatch * | MR_SkyPatch_DefaultConstructArray (size_t num_elems) |
|
MRC_API MR_SkyPatch * | MR_SkyPatch_ConstructFrom (MR_Vector3f dir, float radiation) |
|
MRC_API const MR_SkyPatch * | MR_SkyPatch_OffsetPtr (const MR_SkyPatch *ptr, ptrdiff_t i) |
| Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.
|
|
MRC_API MR_SkyPatch * | MR_SkyPatch_OffsetMutablePtr (MR_SkyPatch *ptr, ptrdiff_t i) |
| Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.
|
|
MRC_API MR_SkyPatch * | MR_SkyPatch_ConstructFromAnother (const MR_SkyPatch *_other) |
|
MRC_API void | MR_SkyPatch_Destroy (const MR_SkyPatch *_this) |
| Destroys a heap-allocated instance of MR_SkyPatch . Does nothing if the pointer is null.
|
|
MRC_API void | MR_SkyPatch_DestroyArray (const MR_SkyPatch *_this) |
| Destroys a heap-allocated array of MR_SkyPatch . Does nothing if the pointer is null.
|
|
MRC_API MR_SkyPatch * | MR_SkyPatch_AssignFromAnother (MR_SkyPatch *_this, const MR_SkyPatch *_other) |
|
MRC_API MR_VertScalars * | MR_computeSkyViewFactor (const MR_Mesh *terrain, const MR_VertCoords *samples, const MR_VertBitSet *validSamples, const MR_std_vector_MR_SkyPatch *skyPatches, MR_BitSet *outSkyRays, MR_std_vector_MR_MeshIntersectionResult *outIntersections) |
|
MRC_API MR_BitSet * | MR_findSkyRays (const MR_Mesh *terrain, const MR_VertCoords *samples, const MR_VertBitSet *validSamples, const MR_std_vector_MR_SkyPatch *skyPatches, MR_std_vector_MR_MeshIntersectionResult *outIntersections) |
|
◆ MR_BitSet
◆ MR_Mesh
◆ MR_SkyPatch
this class represents a portion of the sky, and its radiation Generated from class MR::SkyPatch
.
◆ MR_std_vector_MR_MeshIntersectionResult
◆ MR_std_vector_MR_SkyPatch
◆ MR_std_vector_MR_Vector3f
◆ MR_VertBitSet
◆ MR_VertCoords
◆ MR_VertScalars
◆ MR_computeSkyViewFactor()
computes relative radiation in each valid sample point by emitting rays from that point in the sky: the radiation is 1.0f if all rays reach the sky not hitting the terrain; the radiation is 0.0f if all rays do not reach the sky because they are intercepted by the terrain;
- Parameters
-
outSkyRays | - optional output bitset where for every valid sample #i its rays are stored at indices [i*numPatches; (i+1)*numPatches), 0s for occluded rays (hitting the terrain) and 1s for the ones which don't hit anything and reach the sky |
outIntersections | - optional output vector of MeshIntersectionResult for every valid sample point Generated from function MR::computeSkyViewFactor . Parameter terrain can not be null. It is a single object. Parameter samples can not be null. It is a single object. Parameter validSamples can not be null. It is a single object. Parameter skyPatches can not be null. It is a single object. Parameter outSkyRays defaults to a null pointer in C++. Parameter outIntersections defaults to a null pointer in C++. Never returns null. Returns an instance allocated on the heap! Must call MR_VertScalars_Destroy() to free it when you're done using it. |
◆ MR_findSkyRays()
In each valid sample point tests the rays from that point in the sky;
- Returns
- bitset where for every valid sample #i its rays are stored at indices [i*numPatches; (i+1)*numPatches), 0s for occluded rays (hitting the terrain) and 1s for the ones which don't hit anything and reach the sky
- Parameters
-
outIntersections | - optional output vector of MeshIntersectionResult for every valid sample point Generated from function MR::findSkyRays . Parameter terrain can not be null. It is a single object. Parameter samples can not be null. It is a single object. Parameter validSamples can not be null. It is a single object. Parameter skyPatches can not be null. It is a single object. Parameter outIntersections defaults to a null pointer in C++. Never returns null. Returns an instance allocated on the heap! Must call MR_BitSet_Destroy() to free it when you're done using it. |
◆ MR_sampleHalfSphere()
◆ MR_SkyPatch_AssignFromAnother()
Generated from a method of class MR::SkyPatch
named operator=
. Parameter _this
can not be null. It is a single object. Parameter _other
can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.
◆ MR_SkyPatch_ConstructFrom()
Constructs MR::SkyPatch
elementwise. Never returns null. Returns an instance allocated on the heap! Must call MR_SkyPatch_Destroy()
to free it when you're done using it.
◆ MR_SkyPatch_ConstructFromAnother()
Generated from a constructor of class MR::SkyPatch
. Parameter _other
can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_SkyPatch_Destroy()
to free it when you're done using it.
◆ MR_SkyPatch_DefaultConstruct()
Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_SkyPatch_Destroy()
to free it when you're done using it.
◆ MR_SkyPatch_DefaultConstructArray()
◆ MR_SkyPatch_Destroy()
Destroys a heap-allocated instance of MR_SkyPatch
. Does nothing if the pointer is null.
◆ MR_SkyPatch_DestroyArray()
Destroys a heap-allocated array of MR_SkyPatch
. Does nothing if the pointer is null.
◆ MR_SkyPatch_Get_dir()
direction toward the center of the patch Returns a pointer to a member variable of class MR::SkyPatch
named dir
. Parameter _this
can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.
◆ MR_SkyPatch_Get_radiation()
radiation of the patch depending on Sun's position, sky clearness and brightness, etc Returns a pointer to a member variable of class MR::SkyPatch
named radiation
. Parameter _this
can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.
◆ MR_SkyPatch_GetMutable_dir()
direction toward the center of the patch Returns a mutable pointer to a member variable of class MR::SkyPatch
named dir
. Parameter _this
can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.
◆ MR_SkyPatch_GetMutable_radiation()
radiation of the patch depending on Sun's position, sky clearness and brightness, etc Returns a mutable pointer to a member variable of class MR::SkyPatch
named radiation
. Parameter _this
can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.
◆ MR_SkyPatch_OffsetMutablePtr()
Offsets a pointer to an array element by i
positions (not bytes). Use only if you're certain that the pointer points to an array element.
◆ MR_SkyPatch_OffsetPtr()
Offsets a pointer to an array element by i
positions (not bytes). Use only if you're certain that the pointer points to an array element.
◆ MR_SkyPatch_Set_dir()
direction toward the center of the patch Modifies a member variable of class MR::SkyPatch
named dir
. Parameter _this
can not be null. It is a single object.
◆ MR_SkyPatch_Set_radiation()
radiation of the patch depending on Sun's position, sky clearness and brightness, etc Modifies a member variable of class MR::SkyPatch
named radiation
. Parameter _this
can not be null. It is a single object.