Annotated WRL Structure for FilamentSegment510000000001
DEF FilamentSegment510000000001 Group {
# This is the main container for one dendrite segment
# "DEF" gives it a unique identifier (name)
# "Group" means it can hold multiple children (sub-elements)
children [
# List of child nodes under this segment
DEF _4 Group {
# Empty group (placeholder)
# May be reserved for centerline, annotations, or future data
},
DEF _5 Group {
# This group contains the visible 3D mesh (surface geometry)
children
DEF _6 Shape {
# "Shape" is the actual 3D object that gets rendered
# Contains appearance (color/material) and geometry (mesh)
appearance
Appearance {
# Defines how the surface looks (color, shine, texture)
material
Material {
# Material properties for lighting and color
diffuseColor 0.80000001 0 0.80000001
# RGB color: (0.8, 0, 0.8) = Purple/Magenta
# This typically identifies the dendrite shaft
# (Spines are usually red: 1 0 0)
specularColor 0.30000001 0.30000001 0.30000001
# Specular (shininess) color: light gray
# Controls how shiny/reflective the surface appears
}
}
geometry
IndexedFaceSet {
# This defines the mesh surface as a collection of polygonal faces
# Each face is a flat panel connecting 3+ points
coord
Coordinate {
# Container for all 3D vertex positions
point [ 10.075352 16.53404 7.1640425, ... ]
# List of all (x, y, z) coordinates
# Each triplet is one vertex in 3D space
# For a tube/dendrite: points are arranged in rings (cross-sections)
# These coordinates define the exact shape and position
}
texCoord ...
# Texture coordinates (for applying images/patterns to surface)
# Not needed for morphometric measurements
normal ...
# Surface normal vectors (for lighting calculations)
# Each normal points perpendicular to the surface at each vertex
# Used for realistic shading
coordIndex [ 0, 1, 18, 17, -1, 1, 2, 19, 18, -1, ... ]
# THE KEY CONNECTIVITY ARRAY
# Defines which points form each face (polygon)
# Format: [point_a, point_b, point_c, point_d, -1, ...]
# - Each group of indices (before -1) forms one face
# - "-1" is a separator (end of face)
# Example: [0, 1, 18, 17, -1] connects points 0→1→18→17 into a quad
# For tubes: connects two neighboring rings to form surface panels
normalIndex [ 0, 1, 18, 17, -1, 1, 2, 19, 18, -1, ... ]
# Same structure as coordIndex, but for normal vectors
# Parallel array for shading
texCoordIndex [ 0, 1, 18, 17, -1, 1, 2, 19, 18, -1, ... ]
# Same structure, for texture mapping
# Parallel array for texture coordinates
ccw TRUE
# "Counter-clockwise" vertex ordering
# Determines which side of the face is "front" (visible)
# TRUE = vertices listed in counter-clockwise order when viewed from outside
solid FALSE
# FALSE = render both sides of each face
# (Not a "solid" object—both inside and outside are visible)
convex TRUE
# All faces are convex (no dents/concave parts)
# Optimization hint for renderer
creaseAngle 0
# Shading smoothness threshold (in radians)
# 0 = sharp edges (flat shading between faces)
# Higher values = smooth shading across edges
}
}
},
DEF _7 Group {
# Another empty group (reserved/unused)
# May hold metadata, labels, or future extensions
}
]
}
Visual Breakdown
FilamentSegment510000000001 (the dendrite segment container)
│
├─ _4 (empty placeholder group)
│
├─ _5 (group holding the 3D mesh)
│ │
│ └─ _6 (Shape = the visible surface)
│ │
│ ├─ Appearance
│ │ └─ Material
│ │ ├─ diffuseColor: 0.8 0 0.8 (purple = dendrite)
│ │ └─ specularColor: 0.3 0.3 0.3 (shininess)
│ │
│ └─ IndexedFaceSet (the mesh geometry)
│ ├─ Coordinate
│ │ └─ point [ x y z, ... ] ← ALL vertex positions
│ ├─ coordIndex [ ... ] ← HOW to connect vertices into faces
│ ├─ normalIndex [ ... ] ← Normals for shading
│ ├─ texCoordIndex [ ... ] ← Texture mapping
│ └─ Rendering flags (ccw, solid, convex, creaseAngle)
│
└─ _7 (empty placeholder group)